今天公司项目测试人员发现app里一个奇葩的问题, 在用户登陆的时候, 密码出输入中文而不是字母或数字的时候,点击登陆,艹...
直接崩了. 后来弄了方案,
直接不让你输入中文 下面就用了个方法
仅供参考 勿喷.....
实现下面的委托
#define NUMBERS @"0123456789\n"
- (BOOL)textField:(UITextField *)textField
shouldChangeCharactersInRange:(NSRange)range
replacementString:(NSString *)string
{
NSCharacterSet
*cs;
if(textField ==
phoneNumberField)
{
cs =
[[NSCharacterSet characterSetWithCharactersInString:NUMBERS]
invertedSet];
NSString
*filtered = [[string componentsSeparatedByCharactersInSet:cs]
componentsJoinedByString:@""];
BOOL
basicTest = [string isEqualToString:filtered];
if(!basicTest)
{
UIAlertView*
alert = [[UIAlertView alloc] initWithTitle:@"提示"
message:@"请输入数字"
delegate:nil
cancelButtonTitle:@"确定"
otherButtonTitles:nil];
[alert
show];
[alert
release];
return
NO;
}
}
//其他的类型不需要检测,直接写入
return
YES;
}
如果输入的不是数字,进行提示。