2017-06-27 22 views
0

ユーザーが正しい文字を格納する以下のコードに問題があります。ユーザーが「そこに」入力すると「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

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

+0

これをクリックしてストーリーボードからドラッグする必要がありますか? – jean

答えて

1

は、ユーザーが文字入力を開始し、それだけで終わりに真UITextFieldときのリターンに表示されることができるときshouldChangeCharactersInが呼び出されていることに注意してくださいこの方法の(そのため、最後に入力した文字は表示されません)

したがって、shouldChangeCharactersInを使用することは、変更を追跡する正しい方法ではありません。 @Rashwanの提案に従ってUIControlEventEditingChangedを使用してください。

関連する問題