iPhone UITextField过滤无法正常工作

时间:2010-01-10 04:20:40

标签: iphone objective-c filter uitextfield

好的,我在这里遇到了一个小问题。我想在我的UITextField中过滤两件事。它们包括限制字符数和过滤字符类型。我可以让每个人在那里自己工作,但他们都不能一起工作。它可能与双返回idk有关。希望有人可以查看我的代码,看看他们为什么不能一起工作。我为此打败了自己。谢谢您的帮助。

- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
{
NSCharacterSet *svo;




svo = [[NSCharacterSet characterSetWithCharactersInString:NUMBERS] invertedSet];

NSString *filtered = [[string componentsSeparatedByCharactersInSet:svo] componentsJoinedByString:@""];
BOOL bT = [string isEqualToString:filtered];

return bT;

if (myTextField.text.length >= MAX_LENGTH && range.length == 0)
{
    return NO;
}
else
{
    return YES;
}
}

1 个答案:

答案 0 :(得分:2)

你的第一个“回归”总是会发生,因为你在这里无条件地叫“回归”。

我认为你打算写这个:

return bT || myTextField.text.length < MAX_LENGTH || range.length > 0;

基本上,用上面的内容替换你的'return bT'和'if'语句。 这基本上意味着您在以下情况下返回YES:

  • bT是YES
  • 或文本字段中的文本长度小于MAX_LENGTH
  • 或范围长度为正

在所有其他情况下,您将返回NO。