Swift - 点击输入框外部屏幕关闭虚拟键盘
(本文代码已升级至Swift3)
如果要实现当用户点击文本框之外的舞台屏幕时也能关闭虚拟键盘。这时就要让屏幕的背景响应Touch Down事件。
(1)由于背景是 UIView 控件,不能直接拖拽关联 Touch 事件。首先要让背景变成 UIControl 控件。
点击右上角的 Show the identity inspector 图标,设置 Custom Class 的 Class 为 UIControl 就可以事件关联了。

(2)拖动背景到代码中,关联 Touch Up Inside 事件

(3)在背景点击事件中,关闭键盘
import UIKit
class ViewController: UIViewController {
@IBOutlet weak var tf: UITextField!
override func viewDidLoad() {
super.viewDidLoad()
}
@IBAction func viewClick(_ sender: Any) {
tf.resignFirstResponder()
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
}
}
(4)我们还可以通过调用当前 view 的 endEditing 方法来收起键盘。这样如果页面上如果有多个 textfield,不需要再去判断当前是哪个获取到焦点。
import UIKit
class ViewController: UIViewController {
@IBOutlet weak var tf: UITextField!
override func viewDidLoad() {
super.viewDidLoad()
}
@IBAction func viewClick(_ sender: Any) {
self.view.endEditing(true)
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
}
}

多个UITextField!怎么设置去掉键盘