美文网首页
关于iOS对textView字数限制的一些解法

关于iOS对textView字数限制的一些解法

作者: 乔先生1 | 来源:发表于2016-07-08 09:41 被阅读4677次

现在的服务器一般是不会对字数做限制的,但是遇到一个需求需要对字数做限制,并且同时更新剩余的字数,也许有些朋友会想着用textField或label来做,单是总是存在一些不完美,或一些其他的问题难解决.


用textField的话,自动换行是个难题,因为他并不提供这个属性.用textView则可以和容易解决,因为textView默认有自动换行这个功能.

实现代码入下:

在viewDidLoad添加方法(记得别忘了顺手添加移除)

//    添加监听方法

[[NSNotificationCenter defaultCenter]addObserver:self selector:@selector(textViewDidChange:) name:UITextViewTextDidChangeNotification object:nil];

监听方法的实现

#pragma mark - 当textField布局发生改变的时候调用

- (void)textViewDidChange:(UITextView *)textView {

//    对占位符的显示和隐藏做判断

if (self.textViewLength.text .length == 0) {

self.ploLabel.text =  @"请输反馈信息";

}else {

self.ploLabel.text = @"";

}

//    读出textView字符长度

self.wordLabelCount.text = [NSString stringWithFormat:@"%lu",200 - self.textViewLength.text .length];

if (self.textViewLength.text .length > 200) {

//        对超出的部分进行剪切

self.textViewLength.text = [self.textViewLength.text substringToIndex:10];

self.wordLabelCount.text = @"0";

}

if (self.textViewLength.text .length >= 200) {

UIAlertController *alertController = [UIAlertController alertControllerWithTitle:@"温馨提示!" message:@"亲!最多只能输入200个字!请您合理安排内容!" preferredStyle:UIAlertControllerStyleAlert];

[self presentViewController:alertController animated:YES completion:nil];

dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(3 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{

[self dismissViewControllerAnimated:YES completion:nil];

       });

 }

}

#pragma mark - 移除监听方法

- (void)dealloc {

[[NSNotificationCenter defaultCenter]removeObserver:self];

}

这里有一个细节就是将超出的文字给cut掉,就是用到这个方法:     

 对超出的部分进行剪切

self.textViewLength.text = [self.textViewLength.text substringToIndex:10];

并且这个时候要让跟新的数字一直是0

self.wordLabelCount.text = @"0";

为了更好的用户体验,添加提示占位符是必要的,我在这里也做了,顺便连带的说一下,这样才算完整吗.就在上面得代码中:

//    对占位符的显示和隐藏做判断

if (self.textViewLength.text .length == 0) {

self.ploLabel.text =  @"请输反馈信息";

}else {

self.ploLabel.text = @"";

}

最后我想说一句:

我很欣赏乔布斯的一句话 ---- 用户体验至上!

相关文章

网友评论

      本文标题:关于iOS对textView字数限制的一些解法

      本文链接:https://www.haomeiwen.com/subject/ueoljttx.html