造轮子 - 限制文本输入的字数(textView)

核心实现方案,利用字符串裁剪并赋值的方式时间

效果图如下

造轮子 - 限制文本输入的字数(textView)_第1张图片
意见反馈.jpeg

textField的代理方法,主要判断回车的时候就不让继续输入字符

  • (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text{
    if ([text isEqualToString:@"\n"]) {
    return NO;
    }
    return YES;
    }

textField的代理方法,当文本框中的字符串的字符增加或者减少一个字符都会调用该方法。

  • (void)textViewDidChange:(UITextView *)textView{
UITextRange *selectedRange = [textView markedTextRange];
//获取高亮部分
UITextPosition *pos = [textView positionFromPosition:selectedRange.start offset:0]

//如果在变化中是高亮部分在变,就不要计算字符了
if (selectedRange && pos) {
    return;
}
NSUInteger count = textView.text.length;
if (count < MAXVALUE) {//MAZVALUE 是最大字数 _countLabel 显示字数
    _countLabel.text = [NSString stringWithFormat:@"%lu/200",(unsigned long)count];
}else{
    //通过字符串的剪切来得到不能输入超出字数限制的字符
    self.textView.text = [self.textView.text substringToIndex:200];
    _countLabel.text = [NSString stringWithFormat:@"200/200"];
}
feedContent = textView.text;}

你可能感兴趣的:(造轮子 - 限制文本输入的字数(textView))