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!怎么设置去掉键盘