如何在 iOS 應用中隱藏螢幕鍵盤?


要隱藏螢幕上的鍵盤,我們需要使用 iOS SDK 中預定義的一些內部函式。當我們在文字欄位或文字檢視中輸入時,鍵盤會出現在螢幕上。我們需要根據文字欄位使用內部函式。

例如,如果當前文字欄位是 tfOne,我們可以使用以下程式碼隱藏文字欄位

tfOne.resignFirstResponder()

此程式碼將在每次呼叫時隱藏鍵盤,我們可以在按鈕的操作或手勢識別器上呼叫它。

此方法適用於有限的文字欄位,但如果我們想對多個文字欄位或文字檢視實現相同的功能,則需要改進它。

我們可以為此建立一個函式。

func hideKeyboardWhenTappedAround() {
   let tap: UITapGestureRecognizer = UITapGestureRecognizer(target: self, action: #selector(UIViewController.dismissKeyboard))
   tap.cancelsTouchesInView = false
   view.addGestureRecognizer(tap)
}
@objc func dismissKeyboard() {
   view.endEditing(true)
}

我們可以在我們的類中使用此函式,並且只要我們在任何文字欄位或文字檢視之外點選螢幕,它就會隱藏鍵盤。

但是,正如您所看到的,它需要一個將新增手勢的檢視,因此我們需要將此函式嵌入到 UIViewExtension 中。

extension UIViewController {
   func hideKeyboardWhenTappedAround() {
      let tap: UITapGestureRecognizer = UITapGestureRecognizer(target: self, action: #selector(UIViewController.dismissKeyboard))
      tap.cancelsTouchesInView = false
      view.addGestureRecognizer(tap)
   }
   @objc func dismissKeyboard() {
      view.endEditing(true)
   }
}

現在,我們可以在我們的 viewDidLoad() 中呼叫此函式,然後只要我們在檢視中的任何位置(除了文字檢視/欄位)點選,鍵盤就會隱藏。

更新於: 2019-07-30

384 次瀏覽

開啟你的 職業生涯

透過完成課程獲得認證

立即開始
廣告