今天公司项目测试人员发现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;
}
如果输入的不是数字,进行提示。