我遇到以下代码存储来自用户的正确字符的问题:如果用户输入“那里”,则存储“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)
}
答案 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