我查看并尝试了Swift 3,Xcode 8的多种解决方案,但无法获得任何工作。我试过了
override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {
self.view.endEditing(true)
}
并且还将文本字段输入设置为第一响应者:
override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {
pressureInput.resignFirstResponder()
}
我不知道是Xcode 8到Xcode 9中的某些东西导致这些方法无法工作,还是我在其他地方搞砸了。我有9个文本字段,他们都设置为自我委托。按回车键时,它们的标记将递增,以移动到下一个文本字段。我不认为这会影响它。抱歉,新手!代码可以很好地运行这两个函数,但它们的键盘仍然存在。我只想解雇键盘时,触摸任何文本字段之外。
5条答案
按热度按时间yizd12fk1#
首先在任何swift文件中写入此扩展名
而在视图的viewDidLoad中,任何视图控制器都有textField。
h79rfbju2#
Swift 4,5.我总是使用隐藏键盘时,点击周围和返回按钮.
//隐藏键盘
xoefb8l83#
*以下是在键盘打开时关闭键盘并向上移动视图的解决方案:斯威夫特酒店5
ulydmbyx4#
你有没有试着调试程序,看看代码是否在函数中停止(有断点)?通常这段代码应该可以工作...检查那些textFields是在super view还是在child view中,如果是,也许你应该调用
self.childView.endEditing(true)
。如果你真的使用多个textField,也许你应该尝试IQKeyboardManager库。我在我所有的项目中都使用它。你可以在这里找到它:https://github.com/hackiftekhar/IQKeyboardManager .使用简单,支持良好。只需通过可可pods安装它,将
IQKeyboardManager.sharedManager().enable = true
放入AppDelegate中,即可开始使用。:)gwo2fgha5#
您确定正在调用
touchesBegan
吗?如果你确定,尝试将self.resignFirstResponder()
添加到touchesBegan
函数中。这告诉你的视图控制器它不再是第一个响应者,应该关闭键盘。如果没有,您需要做的是创建一个
UITapGestureRecognizer
,将其添加到视图中,并将其连接到调用self.resignFirstResponder()
的函数。