如何通过点击屏幕来关闭键盘

时间:2016-09-08 03:23:57

标签: ios swift keyboard

我正在寻找一个简单的swift解决方案来添加点击屏幕上任意位置的功能并关闭键盘。我在这里读了很多答案,但他们都给我错误。我之前使用过的是:

override func viewDidLoad() {
    super.viewDidLoad()


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

    view.addGestureRecognizer(tap)

这适用于我的一个项目,但它似乎与其他项目无关。每当我尝试将其添加到其他项目时,我都会收到错误类型' ViewController'没有会员' dismissKeyboard'。

3 个答案:

答案 0 :(得分:4)

您需要在任何引用之上添加一个方法。我把这段代码放在我文件的开头:

   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

答案 1 :(得分:1)

你可以尝试这个,这是一个非常简单的解决方案,经常在swift中用来解开键盘。

只需添加此功能即可。

override func touchesBegan(touches: Set<UITouch>, withEvent event: UIEvent?) 
{
     self.view.endEditing(true)
}

答案 2 :(得分:0)

ui-grid 3.0.7

这很好用,试试吧。