实现下面的委托
#define NUMBERS @"0123456789\n"
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
{
NSCharacterSet *cs;
if(textField == phoneNumberField)
{
cs = [[NSCharacterSet characterSetWithCharactersInString:NUMBERS][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;
}
}
//其他的类型不需要检测,直接写入
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;
}
如果输入的不是数字,进行提示。
#define NUMBERS @"0123456789\n"
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
{
NSCharacterSet *cs;
if(textField == phoneNumberField)
{
cs = [[NSCharacterSet characterSetWithCharactersInString:NUMBERS][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;
}
}
//其他的类型不需要检测,直接写入
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;
}
如果输入的不是数字,进行提示。
本文介绍了一个UITextField的代理方法实现,用于确保用户输入的内容仅为数字字符。通过定义一个包含数字的字符集,并利用此字符集过滤输入字符串,该方法能有效阻止非数字字符的输入。
1090

被折叠的 条评论
为什么被折叠?



