iOS開發-帶Placeholder的UITextView實現

jopen 9年前發布 | 91K 次閱讀 iOS開發 移動開發 UITextView

iOS中UITextField帶有PlaceHolder屬性,可以方便用于提示輸入。但是同樣可以進行文本輸入的UITextView控件則沒有PlaceHolder屬性,還是有些不方便的,尤其是對于略帶強迫癥的我來說。

然后搜索了一番,發現廣大開發者的智慧的無窮的,找到一種替代方案,如下:

iOS開發-帶Placeholder的UITextView實現

核心思路就是使用2個UITextView來模擬PlaceHolder的效果,其中做為輸入區域的TextView在表面,背景要設為透明,作為PlaceHolder角色的TextView則在底層,兩者通過UITextViewDelegate來動態控制。

代碼實現如下:

//通過判斷表層TextView的內容來實現底層TextView的顯示于隱藏
-(BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text{
  if(![text isEqualToString:@""])
  {
    [_backgroundTextView setHidden:YES];
  }
  if([text isEqualToString:@""]&?.length==1&?.location==0){
    [_backgroundTextView setHidden:NO];
  }
  if ([text isEqualToString:@"\n"]) {
    [textView resignFirstResponder];
    return NO;
  }
  return YES;
}


大概就是上面這樣的咯,總之,任何實現都是有可行的替代方案的。

原文  http://www.cnblogs.com/mantgh/p/4272619.html

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!