Swift - 点击输入框外部屏幕关闭虚拟键盘

我们如果把文本框的Return Key设置成Done,然后在storyboard中将文本框的Did End On Exit事件在代码里进行关联。同时关联代码里调用文本框的resignFirstResponder()方法。就可以实现用户点击键盘return key时就关闭虚拟键盘。
 
如果要实现当用户点击文本框之外的舞台屏幕时也能关闭虚拟键盘。这时就要让屏幕的背景响应Touch Down事件。
 
(1)由于背景是UIView控件,不能直接拖拽关联Touch事件。首先要让背景变成UIControl控件。
点击右上角的Show the identity inspector图标,设置Custom Class的Class为UIControl就可以事件关联了。

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

(3)在背景点击事件中,关闭虚拟键盘
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
import UIKit
 
class ViewController: UIViewController {
 
    @IBOutlet weak var tf: UITextField!
     
    override func viewDidLoad() {
        super.viewDidLoad()
    }
 
    @IBAction func viewClick(sender: AnyObject) {
        tf.resignFirstResponder()
    }
     
    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
    }
}
posted @ 2015-09-25 16:22  brave-sailor  阅读(464)  评论(0编辑  收藏  举报