写在前面
字数输入限制的代码部分
//正在改变
- (void)textViewDidChange:(UITextView *)textView {
NSLog(@"%@", textView.text);
//实时显示字数
self.numberLab.text = [NSString stringWithFormat:@"%lu/%d", (unsigned long)textView.text.length,MAX_LIMIT_NUMS];
//字数限制操作
if (textView.text.length >= MAX_LIMIT_NUMS) {
textView.text = [textView.text substringToIndex:MAX_LIMIT_NUMS];
self.numberLab.text = [NSString stringWithFormat:@"%d/%d",MAX_LIMIT_NUMS,MAX_LIMIT_NUMS];
static dispatch_once_t predicate;
dispatch_once(&predicate, ^{
[SVProgressHUD showInfoWithStatus:[NSString stringWithFormat:@"No more than %d characters",MAX_LIMIT_NUMS]];
});
}
}
- (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text{
if ([text isEqualToString:@"/n"]) {
[textView resignFirstResponder];
}
NSString *string = [textView.text stringByReplacingCharactersInRange:range withString:text]; if ([string length] > MAX_LIMIT_NUMS)
{
string = [string substringToIndex:MAX_LIMIT_NUMS];
}
textView.text = string;
NSInteger remainTextNum_= MAX_LIMIT_NUMS; //计算剩下多少文字可以输入
if(range.location>=MAX_LIMIT_NUMS)
{ remainTextNum_=0;
return NO;
} else {
NSString *nsTextContent=textView.text;
NSInteger existTextNum=[nsTextContent length];
remainTextNum_=MAX_LIMIT_NUMS-existTextNum;
return YES;
}
return YES;
}