2014-10-03 50 views
0

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

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

- (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; 
    } 
+2

返回NO而不是YES – 2014-10-03 11:51:25

+2

并使用以下内容: NSString * enteredPasscode = [textField.text stringByReplacingCharactersInRange:range withString:string]; – Krzysztof 2014-10-03 11:52:40

回答

1

你需要返回NO;当你把所有东西都设置为@“”时。我只是检查,它适用于我

相关问题