在某些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
任何提供的帮助将不胜感激
最佳答案
错误消息表明接收到ChangePasswordViewController
调用的目标对象(a dismissKeyboard
)没有声明为@objc dismissKeyboard()
的函数
确保ChangePasswordViewController
具有使用dismissKeyboard
属性声明的@objc
函数。这是所有#selector
引用所必需的。
您还应该能够声明不带"LoginVC."
前缀的选择器,因为您的目标是self。
let tap: UITapGestureRecognizer = UITapGestureRecognizer(target: self, action: #selector(dismissKeyboard))
最后,确保功能签名没有标签(
dismissKeyboard(this:that:)
)。如果这些都不是,请发布函数声明。
关于ios - dismissKeyboard-无法识别的选择器,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/55457487/