override func viewDidLoad() {
super.viewDidLoad()
...
let tapGesture = UITapGestureRecognizer(target: self, action: #selector(dismissKeyboard))
tapGesture.cancelsTouchesInView = false
view.addGestureRecognizer(tapGesture)
}
@objc private func dismissKeyboard() {
view.endEditing(true)
}
빈 곳을 눌렀을 때 키보드가 내려가게 하려면, UITapGestureRecognizer를 사용하여 탭을 감지한 후, 키보드를 숨기는 코드를 추가하면 됩니다. 이를 구현하기 위해 다음 단계를 따르면 됩니다:
1. View에 Tap Gesture Recognizer 추가
viewDidLoad에서 View에 Tap Gesture Recognizer를 추가합니다.
override func viewDidLoad() {
super.viewDidLoad()
view.backgroundColor = .systemBrown
setupDelegate()
configureConstraints()
savedButton.addTarget(self, action: #selector(saveMemo), for: .touchUpInside)
// Add tap gesture recognizer
let tapGesture = UITapGestureRecognizer(target: self, action: #selector(dismissKeyboard))
view.addGestureRecognizer(tapGesture)
}
2. 키보드를 숨기는 메서드 추가
dissmissKeyboard라는 메서드를 추가해 view.endEditing(true)를 호출하여 키보드를 숨깁니다.
@objc private func dismissKeyboard() {
view.endEditing(true)
}
3. Gesture Recognizer가 TableView의 Interaction에 방해되지 않도록 설정
Gesture Recognizer가 TableView의 터치 이벤트를 방해하지 않도록 설정해야 합니다. 이를 위해 cancelsTouchesInView 속성을 false로 설정합니다.
let tapGesture = UITapGestureRecognizer(target: self, action: #selector(dismissKeyboard))
tapGesture.cancelsTouchesInView = false
view.addGestureRecognizer(tapGesture)
'UIKIT' 카테고리의 다른 글
UICollectionReusableView와 UIView의 차이 + headerSection (0) | 2025.01.05 |
---|---|
UIFontMetrics (0) | 2025.01.05 |
UICollectionView의 셀 크기를 동적으로 정사각형으로 조정하려면? (0) | 2024.12.22 |
탭바뷰컨트롤러에서 액션시트 나오게 하는 방법 (0) | 2024.12.20 |
델리게이트 패턴으로 사진 선택하기 (0) | 2024.12.20 |