将用户输入的数据从UITextField存储在String变量中

时间:2017-06-27 21:29:04

标签: ios swift uitextfield

我遇到以下代码存储来自用户的正确字符的问题:如果用户输入“那里”,则存储“ther”。

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 个答案:

答案 0 :(得分:1)

请注意,当用户开始输入一个字符时调用i = 5 p offset_to_perm(arr, p, i) [1, 1] i = i.next #=> 6 p offset_to_perm(arr, p, i) [2, 1] ... ,并且只有在此方法结束时返回true时才能显示shouldChangeCharactersIn。 (这就是为什么你的最后一个输入字符没有出现的原因)

因此,使用UITextField并不是跟踪更改的正确方法。按照@Rashwan

的建议使用shouldChangeCharactersIn