Reputation: 219
I want dismiss keyboard after one character typed. I try this code:
func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool {
if string == "" {
return true
}
if let characterCount = textField.text?.count {
if characterCount == 1 {
return textField.resignFirstResponder()
}
}
return true
}
But keyboard dismiss with this code only after 2 character is being typed. I want keyboard dismiss after one character is typed.
Upvotes: 0
Views: 418
Reputation: 862
Try this!
override func viewDidLoad() {
super.viewDidLoad()
let textField = UITextField()
textField.addTarget(self, action: #selector(textField_editingChanged), for: .editingChanged)
view.addSubview(textField)
}
@objc func textField_editingChanged(sender:UITextField) {
if sender.text?.count == 1 {
view.endEditing(true)
}
}
Upvotes: 1