在我的Swift 4
应用程序中,我希望在textField
中添加一个特殊字符,同时用户点击textField中的第二个字符。
这就是我所做的:
func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool {
if textField == self.specialTextField {
if textField.text?.count == 2 {
self.specialTextField.text! += "|"
}
}
return true
}
问题在于“|”我写第二个字符时不会直接添加,但与第三个字符串同时添加。
例如:我会写“abcd”。
虽然我点击“ab”但没有发生任何事情。只是当我点击“c”时,我得到“ab | c”。
我该怎么办?
答案 0 :(得分:0)
您可以为UITextField
UIControlEvent.editingChanged
事件添加目标,以实现您的目标:
specialTextField.addTarget(self, action: #selector(editingChanged), for: .editingChanged)
并实现editingChanged选择器方法:
@objc func editingChanged(_ textField: UITextField) {
// check the contents of your textField and insert the special characters as needed
print(textField.text!)
}