UITextView和UITextField不同,没有系统自带的placeholder属性。在使用时,需要自己去实现类似placeholder的效果,下面使用了一种比较简单的方法来实现此属性。
第一步:创建textView,并赋值其文本属性
textView.text = @"具体内容";
第二步:遵循代理方法
<UITextViewDelegate>
textView.delegate = self;
第三步:在代理方法中进行相应的操作
//在开始编辑的代理方法中进行如下操作
- (void)textViewDidBeginEditing:(UITextView *)textView {
if ([textView.text isEqualToString:@"具体内容"]) {
textView.text = @"";
}
}
//在结束编辑的代理方法中进行如下操作
- (void)textViewDidEndEditing:(UITextView *)textView {
if (textView.text.length<1) {
textView.text = @"具体内容";
}
}
通过这三步便可实现UITextView仿placeholder的效果,如果有充足的时间或者感兴趣,你也可以自定义一个UITextView,并且增加一些属性,比如:颜色、placeholder等等。
项目实例:
图1需要写一个这样的界面,下面要使用三个UITextView,并且每个UITextView里面都有placeholder
关键代码:
图2首先遵循UITextViewDelegate代理方法
图3然后挂代理,同时给三个不同的TextView加tag,以便于在代理方法中对不同的textView进行不同的操作。
图4执行代理方法,在代理方法中对不同的textView进行不同的操作。
Demo实现效果
图5总结:不知道各位看官有没有注意到一个问题,就是在输入和placeholder一样的内容的时候会出现问题,因为为了项目进度,采用这种简便的方法,但是仍有问题,先记下,在以后的会进行更改。。。
网友评论