触碰任意位置来关闭 iOS 键盘,用 Swift

override func viewDidLoad() {
    super.viewDidLoad()

    //寻找单个或多个触摸。 
    let tap: UITapGestureRecognizer = UITapGestureRecognizer(target: self, action: "dismissKeyboard")
    view.addGestureRecognizer(tap)
}

//触摸被识别后调用这个函数
func dismissKeyboard() {
    //导致 view(或它嵌入的某一个 text field)失去第一响应者的状态
    view.endEditing(true)
}

如果你要在多个 UIViewControllers 里用这个功能的话,这是完成任务的另一种方式:

// 把这段代码放在任意你喜欢的位置
extension UIViewController { 
    func hideKeyboardWhenTappedAround() {
        let tap: UITapGestureRecognizer = UITapGestureRecognizer(target: self, action: "dismissKeyboard")
        view.addGestureRecognizer(tap)
    }

    func dismissKeyboard() {
        view.endEditing(true)
    }
}

现在在每个 UIViewController 里,你要做的就是调用这个函数:

override func viewDidLoad() {
    super.viewDidLoad()
    self.hideKeyboardWhenTappedAround() 
}

这个函数被包含为了一个标准函数,在我的 repo 里,包括跟这个类似的许多有用的 Swift Extensions,过来看看:https://github.com/goktugyil/EZSwiftExtensions

你可能感兴趣的:(触碰任意位置来关闭 iOS 键盘,用 Swift)