UIResponder ➤
이벤트에 응답하고 처리하기 위해 추상화된 인터페이스
class UIResponder : NSObject
UIResponder가 익숙하다면 UIView가 상속받는 객체이기 때문일 것이다.
class UIView : UIResponder
Responder 객체는 UIResponder에서 상속된 클래스들의 인스턴스이며, 이벤트 핸들링을 위한 인터페이스와 responder들의 기본행위를 정의한다.
UIApplication, UIViewController, UIView, UIWindow 등 많은 객체들이 채택하고 있으며, 모든 UIView 객체의 상위 클래스에 해당한다.
이벤트 핸들링
Responder 객체가 이벤트를 핸들링하는 방식은 크게 두 가지로 나뉜다. 전달 받은 이벤트를 처리하거나, 처리되지 않은 이벤트를 다른 responder에게 forwarding 하는 것이다.
이벤트를 전달 받은 responder 객체가 해당 이벤트를 처리하지 않을 경우 responder chain의 다음 responder로 forwarding한다. 이는 처리 될 때까지 전달되며, 마지막까지 처리되지 않을 경우 해당 이벤트 메세지는 버려진다.
The First Responder
앱에서 많은 종류의 이벤트를 처음으로 받는 responder 객체
대체로 앱이 이벤트를 처리하기 가장 적합하다고 판단하는 responder 객체를 지정한다. 앱이 이벤트를 받으면 UIKit이 해당 이벤트를 first responder에게 본낸다.
first responder가 되려면 UIResponder의 subclass에서 canBecomeFirstResponder
프로퍼티를 오버라이드하여 true
를 리턴하도록 변경해야 한다. default 값은 false이다.
'iOS > 학습정리' 카테고리의 다른 글
SwiftUI) Widget - (2) How Widget Works (2) | 2021.02.28 |
---|---|
SwiftUI) Widget - (1) Meet Widget (0) | 2021.02.28 |
iOS) Core Data (2) | 2021.02.02 |
iOS) Dispatch (GCD) (0) | 2021.02.01 |
iOS) Scene-Based Life-Cycle (0) | 2021.02.01 |