[iOS] TextView keyboard resignFirstResponder
더 나은 UX를 위해 다른 서비스처럼 텍스트 필드가 아닌 다른 영역을 터치하거나 스크롤하면 키보드를 자동으로 내려주는 기능을 추가하고자 함.
이전 구현은 텍스트 뷰가 아닌 모든 subview를 찾아서 다른 곳을 터치할 경우 resignFirstResponder를 호출하는 방식인데, 가끔 빈 공간에 이벤트가 발생하지 않는 문제가 존재함.

샘플 코드
override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {
let touch = touches.first as! UITouch
if touch.view != FeedbackTextView {
self.FeedbackTextView.resignFirstResponder()
}
}
텍스트뷰가 아닌 다른 영역을 클릭하면 포커스를 가져가도록 구현.
소감
이 작업을 진행하면서 hitTest라는 부분도 학습하고 이 방향으로 hit를 UIResponder Chain을 통해 다음 영역으로 넘기도록 구현하기도 했는데, 해당 문제를 해결하는데 있어서 오버엔지니어링이라는 리뷰가 있어서 나도 타당하다고 생각해 해당 방향으로 변경
'project > Kuring(공지알림)' 카테고리의 다른 글
| [iOS] FCM(Firebase Cloud Message) 정리 및 테스트 환경 (0) | 2021.12.17 |
|---|---|
| [iOS] UILabel 2줄로 표현하기 (0) | 2021.12.09 |
| [iOS] Error Domain = NSURLErrorDomain Code = -1200 (0) | 2021.12.08 |
| [iOS] UIKit 코드로 화면 전환해보기 (0) | 2021.12.07 |
| iOS SkeletonView 사용할 때 자주 실수하는 부분 정리 (0) | 2021.12.03 |