iPhone文本字段只有一种输入类型

时间:2012-02-09 08:50:00

标签: iphone textfield

我的项目中有一些文本字段。

我希望输入类型的文本字段只有一种类型。例如,信用卡号文本字段的输入必须只是小数,用户输入另一个类型字符,它将在文本字段中删除或不接受。

抱歉我的英文不好。

3 个答案:

答案 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;