2017-06-27 74 views
0

我遇到下面的代碼存儲用戶正確字符的問題:如果用戶輸入「there」,它將存儲「ther」。在字符串變量中存儲用戶輸入的來自UITextField的數據

func textField(_ textField: UITextField, 
       shouldChangeCharactersIn range: NSRange, 
       replacementString string: String) 
    -> Bool 
{ 
    let text: String = nameInputText.text! 
    //print(text) //this prints My text 
    model.validateName(nametext: text) 
    print(text) 
    return true 
} 

我也有這些功能對於我的鍵盤隱藏:

override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) { 
    self.view.endEditing(true) 
} 

func textFieldShouldReturn(_ textField: UITextField) -> Bool { 
    nameInputText.resignFirstResponder() 

    return (true) 
} 
+1

簽出[this](https://stackoverflow.com/questions/28394933/how-do-i-check-when-a-uitextfield-changes)後。 –

+0

你需要點擊並從這個故事板拖動? – jean

回答

1

注意到,當用戶開始輸入一個字符shouldChangeCharactersIn被調用,它只能在UITextField出現時回報末真這種方法。 (這就是爲什麼你的上一個輸入字符沒有出現)

因此,使用shouldChangeCharactersIn不是正確的方式跟蹤你的改變。使用UIControlEventEditingChanged建議@Rashwan

相關問題