本文提供当对UITextField以及UITextView的字数有限制时的解决办法.
对于UITextView:比如限制字数是140字,只要实现下面方法即可:
- (BOOL)textView:(UITextView *)atextView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text{
NSString *new = [_inputTV.text stringByReplacingCharactersInRange:range withString:text];
NSInteger res = 140-[new length];
if(res >= 0){
return YES;
}
else{
NSRange rg = {0,[text length]+res};
if (rg.length>0) {
NSString *s = [text substringWithRange:rg];
[_inputTV setText:[_inputTV.text stringByReplacingCharactersInRange:range withString:s]];
}
[self showTextHud:@"已达字数上限"];//自己写的方法(可写成alertView)
return NO;
}
}
对于UITextField:假如限制字数是200字:
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string;
{ //string就是此时输入的那个字符textField就是此时正在输入的那个输入框返回YES就是可以改变输入框的值NO相反
if ([string isEqualToString:@"\n"]) //按会车可以改变
{
return YES;
}
NSString * toBeString = [textField.text stringByReplacingCharactersInRange:range withString:string]; //得到输入框的内容
if ([toBeString length] > 200) { //如果输入框内容大于200则弹出警告
textField.text = [toBeString substringToIndex:200];
return NO;
}
return YES;
}