我正在寻找一种快速的简单解决方案,以增加轻击屏幕上任何地方并关闭键盘的功能。我在这里阅读了很多答案,但它们都为我抛出了错误。我以前使用过的是:

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/

10-13 09:52