dismiss keyboard when tap outside swift 5
extension UIViewController { func hideKeyboardWhenTappedAround() { let tap: UITapGestureRecognizer = UITapGestureRecognizer(target: self, action: #selector(UIViewController.dismissKeyboard)) tap.cancelsTouchesInView = false view.addGestureRecognizer(tap) } @objc func dismissKeyboard() { view.endEditing(true) } } //Now in every UIViewController, all you have to do is call this function: override func viewDidLoad() { super.viewDidLoad() self.hideKeyboardWhenTappedAround() }