您的位置:首页 > 产品设计 > UI/UE

[UI控件问题] 判断UITextField的输入只为数字的方法

2012-01-02 18:13 501 查看
实现下面的委托

#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;
}
如果输入的不是数字,进行提示。

主要方法就是使用
NSString *filtered = [[string componentsSeparatedByCharactersInSet:cs] componentsJoinedByString:@""];
BOOL basicTest = [string isEqualToString:filtered];
判断输入的字条是不是在指定的字符里,如数字就是0123456789,当然也可以加入小数点等。

可以设置键盘模式吧 只为数字.textfield.keyboardType=UIKeyboardTypeNumberPad
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: