티스토리 뷰

iOS

[iOS] Responder Chain, FirstResponder

Peppo 2022. 7. 17. 21:28
728x90

오늘은 Responder Chain, FirstResponder에 대해 정리해 보려고 합니다. :) 

 

사용자가 앱에 터치를 하게 될때 

앱이 어떻게 알고 반응하게 되는지 파악하는데 도움이 될거 같아요 !! 

 

바로 스터디 해보겠습니다 .

 


Responder

 

Responder는 이벤트를 처리하고 반응할 수 있는 객체 입니다.

모든 Responder 객체는 UIResponder에서 상속된 클래스의 인스턴스 입니다. 

 


Responder Chain

 

이벤트를 처리할수 있는 Responder를 쭉 찾아내는 것 -> 쭉 찾았을때도 없을시 해당 이벤트를 버림

 

예 ) UILabel을 터치했다고 가정 해봅시다. Responder Chain은 아래와 같이 동작합니다.

 

1. 사용자: UILabel 터치 

(사용자 -> UILabel)

 

2. UILabel:  난 그냥 보여주기만 하는건데 👀 내가 아닌가보다 다음 responder UIView ~ 

(UILabel -> UIView)

 

3. UIView: 뭐야 나 이벤트 처리할줄 몰름.  다음 패스 

(UIView -> UIView)

4. UIView: 뭐 ㅡㅡ  

 (UIView -> UIWindow)

5. 이런식으로 쭉~ 이벤트를 처리할 객체를 찾고 찾으면서 UIApplicationDelegate 까지 갔는데도 처리할게 없다면 

해당 이벤트를 버려버립니다.

 

방금 보았던 flow를 Responder Chain 이라고 합니다.

 

  •  

 

First Responder 

 

터치 이벤트에 응답할 수 있는 가장 하단의 뷰를 찾아냄.

 

상단 - 기기쪽
하단 - 사용자쪽

 

앱이 받은 이벤트를 처리할 적절한 responder 객체에게 이벤트를 넘겨 처리하는데,

해당 이벤트를 처음으로 넘겨받는 객체를 FirstResponder 라고 합니다.

 

728x90

'iOS' 카테고리의 다른 글

[Swift] Protocol(프로토콜) - protocol extension(프로토콜 확장)  (0) 2022.08.12
[Swift] Protocol - 타입 프로토콜, 위임  (0) 2022.08.10
[Swift] ~= 연산자  (0) 2022.07.13
[iOS] Unit Test  (0) 2022.07.10
[Swift] 익스텐션 (Extensions)  (0) 2022.07.01