iOS 기본 (swift)
[iOS - swift] becomeFirstResponder 타이밍, UILongPressGestureRecognizer, 키보드
jake-kim
2021. 1. 6. 23:59
becomeFirstResponder와 키보드 상승 타이밍
- UITextfield창을 탭한 경우
- 텍스트 필드 간에 short press를 하면 resignFirstResponder가 되어도 키보드가 등장한채로 유지
: A becomeFirstResponder -> 키보드 상승 -> A resignFirstResponder -> B becomeFirstResponder (키보드 유지) - 텍스트 필드 간에 ong press를 하면 resignFirstResponder가 될 경우 키보드가 사라졌다가 재등장
: A becomeFirstResponder -> 키보드 상승 -> A resignFirstResponder -> 키보드 하강 -> B becomeFirstResponder -> 키보드 상승

UILongPressGestureRecognizer 제스처 disable방법
- 아래 코드 추가
extension UITextField {
public override func addGestureRecognizer(_ gestureRecognizer: UIGestureRecognizer) {
if gestureRecognizer.isKind(of: UILongPressGestureRecognizer.self) {
gestureRecognizer.isEnabled = false
}
return super.addGestureRecognizer(gestureRecognizer)
}
public override func becomeFirstResponder() -> Bool {
for recognizer in self.gestureRecognizers ?? [] where recognizer is UILongPressGestureRecognizer {
recognizer.isEnabled = false
}
return super.becomeFirstResponder()
}
}