2016-11-08 90 views
1

我想resignFirstResponder()爲一個textField只有當所有的textFields都被填充。但由於某種原因,它不起作用。無論其他人是否填寫,它只會檢查一個答覆者。resignFirstResponder只有在所有文本字段都被填充的情況下

這就是我要做的:

//Check wheather fields are filled or not and then enable or disable register button 
    func textChanged(_ sender: NSNotification) { 
     if usernameField.hasText && emailField.hasText && passwordField.hasText && confirmPasswordField.hasText { 
      registerButton.isEnabled = true 
      confirmPasswordField.resignFirstResponder() 
     } 
     else { 
      registerButton.isEnabled = false 
     } 
    } 

而且我也試過:

func textFieldShouldReturn(textField: UITextField!) -> Bool { 
     if usernameField.hasText && emailField.hasText && passwordField.hasText && confirmPasswordField.hasText { 
     confirmPasswordField.resignFirstResponder() 
      return true 
     } 
     return false 
    } 

我做錯了嗎?

+0

代碼很好。我只是試過,它的工作原理。我不確定我是否理解你的意思,「無論其他人是否被填補,它只會檢查一個迴應者。」你的意思是說resignFirstResponder只有在專注於confirmPasswordField時纔會觸發? –

+0

我有4個字段,並且我希望最後一個字段只有在所有其他人都填寫時纔是第一響應者。 –

+0

好的。現在有什麼問題?如果在文本域1,2和3中有文本並在將數據輸入到4之前返回,會發生什麼?如果在輸入4中的數據後按回車鍵會發生什麼? –

回答

1

這是我用

func textFieldShouldReturn(textField: UITextField) -> Bool { 
    if text1.hasText() && text2.hasText() && text3.hasText() && text4.hasText(){ 
     registerButton.enabled = true 
     text4.resignFirstResponder() 
     return true 
    } 
    return false 
} 

的代碼,我不知道你是如何調用該函數框TextChanged所以我真的不能找出你想在那裏做。

如果您希望確保用戶在填寫text1,text2,text3之前不能移動到text4,然後使用另一個if塊來實現該功能。