协议扩展中的选择器(UIViewController协议在点击任何地方时解除键盘)

时间:2017-08-25 19:23:00

标签: ios swift

已经以几种不同的方式提出了这个问题。在这种情况下,我添加了一个轻敲手势识别器,我无法使其工作。我尝试了几种不同的方式,这就是我所处的位置。

错误消息是:

  

非 - ' @ 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()。

0 个答案:

没有答案