키보드 외 다른 곳을 터치했을 때 키보드가 내려가도록 하는 UIViewController Extension
Posted on 2021-11-15 by GKSRUDTN99
Swift&Xcode
Xcode
Swift
키보드 외 다른 곳을 터치했을 때 키보드가 내려가도록 하는 UIViewController Extension
func hideKeyboardWhenTappedAround(target: UIView? = nil, action: Selector? = #selector(dismissKeyboard)) {
// Tap Gesture를 인식할 수 있는 Recognizer 객체를 생성한다.
let recognizer = UITapGestureRecognizer(target: self, action: action)
// Tap Gesture가 인식되었을 때, 터치를 뒤에 있는 뷰에도 전달할 것인지 정한다.
recognizer.cancelsTouchesInView = false
// targetView가 설정되었다면 특정 View를 터치했을 때 키보드가 내려가도록 지정할 수 있다.
// 지정하지 않았다면, Background View를 targetView로 지정한다.
var targetView = target
if targetView == nil{
targetView = self.view
}
targetView?.addGestureRecognizer(recognizer)
}
@objc func dismissKeyboard(force: Bool = false) {
self.view.endEditing(force)
}