override func viewDidLoad() {
super.viewDidLoad()
//尋找單個(gè)或多個(gè)觸摸俗孝。
let tap: UITapGestureRecognizer = UITapGestureRecognizer(target: self, action: "dismissKeyboard")
view.addGestureRecognizer(tap)
}
//觸摸被識(shí)別后調(diào)用這個(gè)函數(shù)
func dismissKeyboard() {
//導(dǎo)致 view(或它嵌入的某一個(gè) text field)失去第一響應(yīng)者的狀態(tài)
view.endEditing(true)
}
如果你要在多個(gè) UIViewControllers 里用這個(gè)功能的話,這是完成任務(wù)的另一種方式:
// 把這段代碼放在任意你喜歡的位置
extension UIViewController {
func hideKeyboardWhenTappedAround() {
let tap: UITapGestureRecognizer = UITapGestureRecognizer(target: self, action: "dismissKeyboard")
view.addGestureRecognizer(tap)
}
func dismissKeyboard() {
view.endEditing(true)
}
}
現(xiàn)在在每個(gè) UIViewController 里浮声,你要做的就是調(diào)用這個(gè)函數(shù):
override func viewDidLoad() {
super.viewDidLoad()
self.hideKeyboardWhenTappedAround()
}
這個(gè)函數(shù)被包含為了一個(gè)標(biāo)準(zhǔn)函數(shù)虚婿,在我的 repo 里,包括跟這個(gè)類似的許多有用的 Swift Extensions泳挥,過來看看:https://github.com/goktugyil/EZSwiftExtensions