博客> 关于textView设置placeholder
关于textView设置placeholder
2小时前 评论:0 阅读:194 梧桐一叶
textView placeholder

作为iOS的开发者大家都知道系统的textView没有像textField那样可以设置placeholder,但是设计们往往会设计一个带placeholder的可以换行输入的输入框,看来只有我们自己去实现了。 首先,根据设计稿用label呈现placeholder,设置frame和颜色,在放置textview,注意将textView背景设置成透明,不然看不到placeholderLabel(布局都很简单,如果使用xib或者storyboard布局会更简单) 其次,为textView设置代理,实现两个代理方法- (BOOL)textView:(UITextView )textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString )text 和- (void)textViewDidChange:(UITextView )textView 具体:- (BOOL)textView:(UITextView )textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text { if ([text isEqualToString:@"\n"]) { [self.tvDescription resignFirstResponder]; return NO; }else { if (range.length == 1) { return YES; } if (range.location + text.length>36) { return NO; }else return YES; } }

  • (void)textViewDidChange:(UITextView *)textView { if (textView.text.length > 0 ) { self.lblDesPlaceholder.hidden = YES; }else{ self.lblDesPlaceholder.hidden = NO; } NSInteger wordNum = 36 - self.tvDescription.text.length; if(wordNum < 0 xss=removed xss=removed> 36) { _tvDescription.text = [textView.text substringToIndex:36]; } } 一定要注意的是如果你的应用要兼容iOS7,textView.markedTextRange == nil是一定要有的,不然会奔溃的
收藏
1
sina weixin mail 回到顶部