我正在寻找一个简单的swift解决方案来添加点击屏幕上任意位置的功能并关闭键盘。我在这里读了很多答案,但他们都给我错误。我之前使用过的是:
override func viewDidLoad() {
super.viewDidLoad()
let tap: UITapGestureRecognizer = UITapGestureRecognizer(target:self, action: #selector(ViewController.dismissKeyboard))
view.addGestureRecognizer(tap)
这适用于我的一个项目,但它似乎与其他项目无关。每当我尝试将其添加到其他项目时,我都会收到错误类型' ViewController'没有会员' dismissKeyboard'。
答案 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
这很好用,试试吧。