我的项目中有一些文本字段。
我希望输入类型的文本字段只有一种类型。例如,信用卡号文本字段的输入必须只是小数,用户输入另一个类型字符,它将在文本字段中删除或不接受。
抱歉我的英文不好。
答案 0 :(得分:3)
你必须在textField的委托中使用textField:shouldChangeCharactersInRange:replacementString :,对于任何更改,返回YES或NO。您可以分析replacementString是否为禁用字符,如果找到则拒绝它。
答案 1 :(得分:0)
如果您已按代码创建UITextField
,则需要设置如下:
textField.keyboardType = UIKeyboardTypeNumberPad;
答案 2 :(得分:0)
您可以如下所示声明并使用
#define LEGAL @"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz "
// allow only legal letters
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
{
NSCharacterSet *cs = [[NSCharacterSet characterSetWithCharactersInString:LEGAL] invertedSet];
NSString *filtered = [[string componentsSeparatedByCharactersInSet:cs] componentsJoinedByString:@""];
return [string isEqualToString:filtered];
}
我们也可以这样使用
entryField.keyboardType = UIKeyboardTypeNumbersAndPunctuation;