我有下一个问题:
在UITextField中,我需要检查用户是否为名称插入了无效字符,例如[] {}。
我的问题是,如何使用一个内部无效字符的NSArray检查UITextField的内容?
答案 0 :(得分:2)
如果你想在一些输入政治上检查键盘上的单字母输入 你需要使用textField委托方法
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
您应该检查异常数组中是否包含 string 。如果是这样,则返回 NO ,并且符号不会出现在屏幕上。
答案 1 :(得分:0)
好的,我解释一下我要解决的问题。因为我正在控制UITextField的行为,我在用户输入名称和一条注释,我创建一个包含我允许的所有字符的字符集,并将其放入shouldChangeCharactersInRange方法中:
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string {
NSCharacterSet *invalidCharSet = [[NSCharacterSet characterSetWithCharactersInString:@" ,.abcdefghijklmnopqrstuvwxyzçñ?!'ABCDEFGHIJKNMLOPQRSTUVWXYZÇÑ-_;:0123456789+*()-/@áàéèíìóòúù"] invertedSet];
NSString *filtered = [[string componentsSeparatedByCharactersInSet:invalidCharSet] componentsJoinedByString:@""];
return [string isEqualToString:filtered];
}