Home > Blockchain >  How to dismiss UISearchBar keyboard without effecting other functionalities?
How to dismiss UISearchBar keyboard without effecting other functionalities?

Time:09-22

This is how my screen looks like..

Now my code for dismissing the keyboard when the use of searchbar is over:

    override func viewDidLoad() {
        super.viewDidLoad()

        let tap = UITapGestureRecognizer(target: self, action: #selector(handleTap))
        view.addGestureRecognizer(tap)
    }

        @objc func handleTap() {
        searchbar.resignFirstResponder()
    }

By this my keyboard is getting dismissed but whenever using this, the tableview DidSelectRowAt is no more working (Though there is no error or warning). I am confused that what is the problem exactly. Please help! Thanks is advance..

CodePudding user response:

Set cancelsTouchesInView to false, for detailed explanation: link

extension UIViewController {
    func hideKeyboard() {
        let tap: UITapGestureRecognizer = UITapGestureRecognizer(target: self, action: #selector(UIViewController.dismissKeyboard))
        tap.cancelsTouchesInView = false
        view.addGestureRecognizer(tap)
    }
    
    @objc
    func dismissKeyboard() {
        view.endEditing(true)
    }
}

Usage:

call hideKeyboard() in the viewDidLoad of the controller.

  • Related