UITextView实现相似UITextField中的placehoder效果

UITextField中的placehoder效果就是一个文本框的提示内容,可是UITextView是没有这个功能的,因此咱们须要本身模拟,思路以下:java

  1. 把textView中的内容设为自定义的placehoder
  2. 每当用户开始输入的时候判断textView中的内容是否是placehoder,若是是就把他清空,若是不是则不改变
  3. 每当用户输入完后判断textView中是否为空,若是是空的表示用户没有输入或已清空,则用placehoder填充,不然不作改变

具体实现:markdown

  • 让当前控制器类实现UITextViewDelegate,而且设置自定义的placehoder。
@interface ContactUsViewController : UIViewController<UITextViewDelegate>
@property (weak, nonatomic) IBOutlet UITextView *textView;
@property(strong,nonatomic)NSString* placehoder;

@end
  • 设置textView中的初始值和代理
self.textView.delegate = self;
self.textView.text = self.placehoder;
  • 实现思路2
/** *  @author Elin * * textView开始输入时调用 * *  @param textView 被输入的UITextView */
-(void)textViewDidBeginEditing:(UITextView *)textView{
    //若是textView中的字符串为定义的placehoder,表示用户以前没有输入内容,则清楚textView
    if ([textView.text isEqualToString:self.placehoder]) {
        self.textView.text = @"";
    }
}
  • 实现思路3
/** *  @author Elin * * textView结束输入的时候调用 * *  @param textView 被输入的UITextView */
-(void)textViewDidEndEditing:(UITextView *)textView{
    //若是textView中的内容长度为0,则表示textView为空,用placehoder填充
    if (textView.text.length<1) {
        self.textView.text = self.placehoder;
    }
}

固然若是为了更加逼真,能够设置改变字体颜色,在此再也不赘述。字体

相关文章
相关标签/搜索