iOS/설명
[iOS] UIResponder
Sky Titan
2022. 1. 4. 21:22
728x90
iOS의 Responder와 Responder Chain 이해하기
UIKit과 관련된 애플 문서를 볼 때 빈번하게 등장하는 Reponder Chain에 관련한 내용을 정리합니다. 여러 애플 문서를 참고하였으며, 포스트의 맨 아래 References에서 확인할 수 있습니다.
seizze.github.io

UIResponder
- 사용자의 event들을 핸들링하는 추상 인터페이스
- UIResponder를 상속받으면 touchesBegan, touchesMoved, touchesEnd 등의 메소드를 오버라이드해서 사용자 이벤트를 수신했을 때의 처리를 할 수 있다.
- 이벤트의 종류는 터치, press, 모션, 원격 조종 등이 있다.
- 또한 Responder Chain을 통해 event들을 핸들링할 수 있는 곳까지 포워딩하는 역할을 한다.
- UIView, UIApplication, UIViewController 모두 UIResponder를 상속받는다.
Responder Chain
- 아래 그림과 같은 계층 구조를 가진 화면에서 UILabel, UITextField, UIButton이 가장 먼저 event를 수신하는 firstResponder가 된다.
- 해당 컴포넌트들이 event를 핸들링하지 않는다면 그들의 부모인 UIView로 넘긴다.
- 해당 UIView 또한 핸들링하지 않는다면 UIViewController로 넘기게 된다.
- 그 다음은 UIWindow, 최종적으로는 UIApplication으로 넘기게 된다.

728x90