【问题标题】:UITextField shouldChangeCharactersInRangeUITextField shouldChangeCharactersInRange
【发布时间】:2014-10-03 11:45:03
【问题描述】:

我正在实现一个文本字段来输入用户密码。我正在尝试将存储密码的长度与用户输入的密码匹配。当长度匹配时,我尝试验证密码。如果密码不匹配或长度大于存储的值,我会尝试清除文本字段(else-if),但最后输入的字符仍保留在文本字段中。

请提出我做错了什么或正确的方法是什么?

- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
    {
            enteredPasscode = [enteredPasscode stringByAppendingString:string];
            if(enteredPasscode.length == [[self.passcodeFromDB stringValue] length])
            {
                [self performMatch:enteredPasscode];
            }
            else if(enteredPasscode.length > [[self.passcodeFromDB stringValue] length]){
                self.passcodeField.text = @"";
                textField.text = @"";
                enteredPasscode = @"";
            }
        return YES;
    }

【问题讨论】:

  • 返回 NO 而不是 YES
  • 并使用以下内容: NSString *enteredPasscode = [textField.text stringByReplacingCharactersInRange:range withString:string];

标签: ios objective-c iphone ios7 uitextfield


【解决方案1】:

您需要返回 NO;当您将所有内容设置为@“”时。我刚刚检查过,它对我有用

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多