dismissKeyboard-无法识别的选择器

时间:2019-04-01 14:27:11

标签: ios xcode swift4

在某些View Controller中,我具有以下命令:

    //Looks for single or multiple taps.
    let tap: UITapGestureRecognizer = UITapGestureRecognizer(target: self, action: #selector(LoginVC.dismissKeyboard))


    //add tap gesture
    view.addGestureRecognizer(tap)

但是在将语言从swift3更改为swift4之后,我开始收到以下错误

[iosapp_v147.ChangePasswordViewController dismissKeyboard]:无法识别的选择器已发送到实例0x155e04090

任何提供的帮助将不胜感激

1 个答案:

答案 0 :(得分:1)

错误消息表明接收到ChangePasswordViewController调用的目标对象(dismissKeyboard)没有声明为@objc dismissKeyboard()的函数

确保ChangePasswordViewController具有一个dismissKeyboard属性声明的@objc函数。所有#selector参考都是必需的。

由于目标是self,因此您还应该能够声明不带"LoginVC."前缀的选择器。

let tap: UITapGestureRecognizer = UITapGestureRecognizer(target: self, action: #selector(dismissKeyboard))

最后,确保功能签名没有标签(dismissKeyboard(this:that:))。

如果这些都不是,请发布函数声明。