2014-10-03 75 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;當你把所有東西都設置爲@「」時。我只是檢查,它適用於我