리스폰더 체인에 대해서

2022. 11. 12. 21:32면접준비

리스폰더 체인

이벤트를 처리할 리스폰더를 찾는 순서

 

first Responder - 맨 처음 터치된 위치

 

Responder Chain - first Responder부터 실제 Responder를 찾아나가는 과정

 

1. 초기View(이벤트를 최초로 받은 View)는 이벤트 또는 메시지를 처리하려고 시도합니다. 이벤트를 처리할 수 없는 경우, 초기 View가 해당 View의 superView에 이벤트를 전달합니다. 왜냐하면, 초기 View는 viewcontroller의 view계층에서 최상위 view가 아니기 때문입니다.

2. superView는 이벤트를 처리하려고 시도합니다. superView가 이벤트를 처리 할 수 없는 경우, View가 여전히 View계층에서 최상위 View가 아니기 때문에, 이벤트를 superView(지금 말하는 superView의 superView)로 전달합니다.

3. Viewcontroller의 view계층 구조에서, 최상위View는 이벤트를 처리하려고 시도합니다. 최상위 View가 이벤트를 처리할 수 없는 경우, 해당 ViewController에 이벤트를 전달합니다.

4. viewController는 이벤트를 처리하려고 시도하고, 이벤트처리를 할 수 없으면, 이벤트를 window에 전달합니다.

5. window객체가 이벤트를 처리 할 수 없는 경우, 이벤트는 singleton app object로 전달됩니다. 

 (싱글톤 앱 오브젝트는 아직 저도 잘 모르겠는데, UIApplication에 나오는 내용입니다.)

6. application 객체가 이벤트를 처리 없는 경우, 이벤트를 삭제합니다.