我正在寻找一种快速的简单解决方案,以增加轻击屏幕上任何地方并关闭键盘的功能。我在这里阅读了很多答案,但它们都为我抛出了错误。我以前使用过的是:
override func viewDidLoad() {
super.viewDidLoad()
let tap: UITapGestureRecognizer = UITapGestureRecognizer(target:self, action: #selector(ViewController.dismissKeyboard))
view.addGestureRecognizer(tap)
这适用于我的一个项目,但似乎不适用于其他项目。每当我尝试将其添加到其他项目时,我都会收到错误消息,类型“ViewController”没有成员“dismissKeyboard”。
最佳答案
您需要在对它的任何引用之前添加一个方法。我将此代码放在文件的开头:
func dismissKeyboard() {
//Causes the view (or one of its embedded text fields) to resign the first responder status and drop into background
view.endEditing(true)
}
然后,每当我需要引用.dismissKeyboard时,我都会在viewDidLoad()中使用它:
let tap: UITapGestureRecognizer = UITapGestureRecognizer(target: self, action: #selector(LoginViewController.dismissKeyboard))
view.addGestureRecognizer(tap) // Allows dismissal of keyboard on tap anywhere on screen besides the keyboard itself
并确保将“LoginViewController”替换为当前的View Controller。根据您的示例,这只是“ViewController”
如果您正在寻找更深入的答案,请参阅7KV7:
https://stackoverflow.com/a/5711504/6312593
关于ios - 如何通过在屏幕上点击来关闭键盘,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/39382106/