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;
    }
}

固然若是爲了更加逼真,能夠設置改變字體顏色,在此再也不贅述。字體

相關文章
相關標籤/搜索