Keyboard 触摸其他控件(如按钮)时如何隐藏键盘Swift 2.0

Keyboard 触摸其他控件(如按钮)时如何隐藏键盘Swift 2.0,keyboard,swift2,hide,Keyboard,Swift2,Hide,我读过这一页: 若要了解如何隐藏键盘,当我触摸view时很好,但当我触摸按钮时它不工作,有人知道吗?将此粘贴到控制器中: let tap: UITapGestureRecognizer = UITapGestureRecognizer(target: self, action: #selector(YourViewController.dissmissKeyboard)) view.addGestureRecognizer(tap) @objc func dissmissKeyboa

我读过这一页:
若要了解如何隐藏键盘,当我触摸view时很好,但当我触摸按钮时它不工作,有人知道吗?

将此粘贴到控制器中:

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

 @objc func dissmissKeyboard() {
    view.endEditing(true)

}
extension UIViewController {
func hideKeyboardWhenTappedAround() {
    let tap: UITapGestureRecognizer = UITapGestureRecognizer(target: self, action: "dismissKeyboard")
    view.addGestureRecognizer(tap)
}

func dismissKeyboard() {
    view.endEditing(true)
}
}

将其粘贴到控制器中:

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

 @objc func dissmissKeyboard() {
    view.endEditing(true)

}
extension UIViewController {
func hideKeyboardWhenTappedAround() {
    let tap: UITapGestureRecognizer = UITapGestureRecognizer(target: self, action: "dismissKeyboard")
    view.addGestureRecognizer(tap)
}

func dismissKeyboard() {
    view.endEditing(true)
}
}

这是一个相当黑客,但它的工作相当好,键盘甚至隐藏时,点击背景。我不确定它是否能解决你的按钮问题,但是试试看

编辑:是否尝试将UITapgestureRecognitor添加到按钮

在viewDidLoad中添加代码:

self.hideKeyboardWhenTappedAround()
然后将扩展添加到ViewController:

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

 @objc func dissmissKeyboard() {
    view.endEditing(true)

}
extension UIViewController {
func hideKeyboardWhenTappedAround() {
    let tap: UITapGestureRecognizer = UITapGestureRecognizer(target: self, action: "dismissKeyboard")
    view.addGestureRecognizer(tap)
}

func dismissKeyboard() {
    view.endEditing(true)
}
}

对我来说效果非常好。

这是一个相当不错的技巧,但它工作得非常好,在背景上点击键盘时甚至会隐藏起来。我不确定它是否能解决你的按钮问题,但是试试看

编辑:是否尝试将UITapgestureRecognitor添加到按钮

在viewDidLoad中添加代码:

self.hideKeyboardWhenTappedAround()
然后将扩展添加到ViewController:

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

 @objc func dissmissKeyboard() {
    view.endEditing(true)

}
extension UIViewController {
func hideKeyboardWhenTappedAround() {
    let tap: UITapGestureRecognizer = UITapGestureRecognizer(target: self, action: "dismissKeyboard")
    view.addGestureRecognizer(tap)
}

func dismissKeyboard() {
    view.endEditing(true)
}
}

对我来说真的很好。

SWIFT 4

将此添加到viewDidLoad

 let endEditingTapGesture = UITapGestureRecognizer(target: view, action: #selector(UIView.endEditing(_:)))
        endEditingTapGesture.cancelsTouchesInView = false
        view.addGestureRecognizer(endEditingTapGesture)

SWIFT 4

将此添加到viewDidLoad

 let endEditingTapGesture = UITapGestureRecognizer(target: view, action: #selector(UIView.endEditing(_:)))
        endEditingTapGesture.cancelsTouchesInView = false
        view.addGestureRecognizer(endEditingTapGesture)