Computer >> 컴퓨터 >  >> 프로그램 작성 >> IOS

iOS 앱에서 화면 키보드를 어떻게 숨기나요?

<시간/>

화면에서 키보드를 숨기려면 iOS SDK에 미리 정의된 일부 내부 기능을 사용해야 합니다. 텍스트 필드 또는 textView에 입력할 때 키보드가 화면에 나타납니다. 텍스트 필드에 따라 내부 기능을 활용해야 합니다.

예를 들어 현재 텍스트 필드가 tfOne인 경우 아래 코드를 사용하여 텍스트 필드를 숨길 수 있습니다.

tfOne.resignFirstResponder()

이 코드는 호출될 때 키보드를 숨깁니다. 버튼 또는 제스처 인식기에 대한 작업에서 호출할 수 있습니다.

이 방법은 제한된 textFields에 적합하지만 여러 textFields 또는 textviews에서 동일한 결과를 얻으려면 개선해야 합니다.

같은 기능을 만들 수 있습니다.

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()에서 이 함수를 호출할 수 있으며 텍스트 보기/필드를 제외한 보기의 아무 곳이나 탭할 때마다 키보드가 숨겨집니다.