如何在iOS App中隐藏屏幕键盘?

要在屏幕上隐藏键盘,我们需要利用iOS SDK中预定义的一些内部功能。当我们在文本字段或文本视图中键入内容时,键盘将出现在屏幕上。我们需要根据文本字段使用内部函数。

例如,如果当前文本字段为tfOne,则可以使用以下代码隐藏文本字段:

tfOne.resignFirstResponder()

每次调用时,此代码都会隐藏键盘,我们可以在按钮或手势识别器的操作上调用此代码。

此方法适用于有限的textField,但如果要使用多个textField或textview实现相同的效果,则需要使其更好。

我们可以为它创建一个函数。

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()然后每当在视图中点击除文本“视图/字段”以外的任何位置,键盘都将被隐藏。