iOS 응용 (swift)
[iOS - swift] 빈 화면 탭 시 키보드 내리는 방법 (화면 터치 시 키보드 숨김처리)
jake-kim
2021. 3. 22. 23:34
원리
- ViewController에 tap gesture를 등록 한 후, 해당 gesture에 대한 이벤트는 view.endEditing(true)이벤트를 주면 해결
- Tap의 cancelsTouchesInView = true 속성: 기존에 일어나고 있는 touch이벤트들을 취소시키는 속성
- 이벤트가 잘 전달되게 하려면 cancelsTouchesInView = false로 지정 필요
구현
extension UIViewController {
func hideKeyboardWhenTappedBackground() {
let tapEvent = UITapGestureRecognizer(target: self, action: #selector(dismissKeyboard))
tapEvent.cancelsTouchesInView = false
view.addGestureRecognizer(tapEvent)
}
@objc func dismissKeyboard() {
view.endEditing(true)
}
}
* 출처: developer.apple.com/documentation/uikit/uigesturerecognizer/1624218-cancelstouchesinview