已经以几种不同的方式提出了这个问题。在这种情况下,我添加了一个轻敲手势识别器,我无法使其工作。我尝试了几种不同的方式,这就是我所处的位置。
错误消息是:
非 - ' @ objc'方法' addKeyboardDiscardTapGesture()'不满足' @ objc' protocol' KeyboardDiscardable'
@objc protocol KeyboardDiscardable {
func addKeyboardDiscardTapGesture()
func dismissKeyboard()
}
extension KeyboardDiscardable where Self: UIViewController {
func addKeyboardDiscardTapGesture() {
let tap = UITapGestureRecognizer(target: self, action: #selector(Self.dismissKeyboard))
view.addGestureRecognizer(tap)
}
func dismissKeyboard() {
view.endEditing(true)
}
}
PS:要确认一下,我们的想法是只需要在viewDidLoad中调用addKeyboardDiscardTapGesture()。