foh*_*oho 0 objective-c uitextfield uialertview ios
我正在尝试在textField中验证文本长度.这是我尝试的
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
{
NSString *textLenght = [NSString stringWithFormat:@"%@", [textField text]];
if ([textLenght length] > 5)
{
UIAlertView *alert = [[UIAlertView alloc]initWithTitle:@"Message"
message:@"Too long"
delegate:self
cancelButtonTitle:@"OK"
otherButtonTitles:nil, nil];
[alert show];
[alert release];
return NO;
}
return YES;
}
Run Code Online (Sandbox Code Playgroud)
这段代码效果很好.当我输入超过5个字符时,会显示警告框.问题是当我尝试删除文本字段的最后一个字符时,会再次显示警告框.
如何解决?
您必须先创建实际的字符串
NSString *str = [textField.text stringByReplacingCharactersInRange:range withString:text];
Run Code Online (Sandbox Code Playgroud)
你事后检查长度
int length = str.length;
Run Code Online (Sandbox Code Playgroud)
并继续if(长度)检查.
这种方式首先创建所需的字符串(也考虑退格).
| 归档时间: |
|
| 查看次数: |
5994 次 |
| 最近记录: |