//输入最大字数
#define MAX_NUMBER 200
#pragma mark 在内容改变的时候调用,会记录UITextView内容的个数,当内容超过返回NO
- (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text{
NSString *comcatstr = [textView.text stringByReplacingCharactersInRange:rangewithString:text];
NSInteger caninputlen =MAX_NUMBER - comcatstr.length;
if (caninputlen >=0){
return YES;
}else{
NSInteger len = text.length + caninputlen;
//防止当text.length + caninputlen < 0时,使得rg.length为一个非法最大正数出错
NSRange rg = {0,MAX(len,0)};
if (rg.length >0){
NSString *s = [text substringWithRange:rg];
[textView setText:[textView.text stringByReplacingCharactersInRange:rangewithString:s]];
}
return NO;
}
}
#pragma mark 当上面的方法内容返回YES调用,没懂内容增加或者改变时 self.number_label.text显示内容计数也会根据内容多少改变;
-(void)textViewDidChange:(UITextView *)textView{//当输入且上面的代码返回YES时触发。或当选择键盘上的联想字时触发。
NSString *nsTextContent = textView.text;
NSInteger existTextNum = nsTextContent.length;
if (existTextNum >MAX_NUMBER){
//截取到最大位置的字符
NSString *s = [nsTextContent substringToIndex:MAX_NUMBER];
[textView setText:s];
}
//不让显示负数
self.number_label.text = [NSStringstringWithFormat:@"%ld/%d",MAX(0,MAX_NUMBER - existTextNum),MAX_NUMBER];
}
效果图