Parcker
Parcker

Reputation: 219

Dismiss keyboard after one character typed

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

Answers (1)

Anand Khanpara
Anand Khanpara

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

Related Questions