【问题标题】:iPhone UITextField filtering doesn't work properlyiPhone UITextField 过滤无法正常工作
【发布时间】:2010-01-10 04:20:40
【问题描述】:

好的,我在这里遇到了一个小问题。我试图在我的 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;
}
}

【问题讨论】:

    标签: iphone objective-c filter uitextfield


    【解决方案1】:

    你的第一个'return'总是会发生,因为你在这里无条件地调用'return'。

    我想你是想写这个:

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

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

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

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

    【讨论】:

      猜你喜欢
      • 2013-09-15
      • 1970-01-01
      • 2015-02-14
      • 2013-08-16
      • 2012-11-16
      • 2011-04-06
      相关资源
      最近更新 更多