-
[Swift] UIResponder 대략 알아가기개발/Swift 2021. 12. 1. 18:04
uiresponder 는 앱 이벤트 처리 백본을 구성한다?
무슨말인지 모르겠고 일단 이벤트에 대한 응답 처리를 위한 클래스임
UIApplication UIViewcontroller UIView 는 모두 리스폰더인데 (상위 클래스가 UIResponder임)
이벤트가 발생하면 앱의 리스폰더 객체에 전달함 (vc , view에 전달함)
터치, 모션 원격 등 이벤트를 처리하려면 리스폰더(vc,view) 가 해당 메소드를 오버라이드 하면댐
touchesBegan(_:with:) 등등...
만약 주어진 리스폰더가 이벤트를 처리하지 않는 경우
리스폰더 체인의 다음 이벤트로 해당 이벤트를 전달한다
→ 앱이 이벤트를 받으면 그 이벤트를 처리할 대상을 찾으려고 계속 전달 과정을 거침
→ 리스폰더가 처리 하지 않으면 (리스폰더 체인에 있는)다음 리스폰더로 이벤트를 전달함
리스폰더 체인은 쉽게 가장 하위 view → 상위 view → 더 상위 view → viewController → .... → window
이순서대로 있다고 보면된다. 하위에서 처리안하면 위로 타고타고 올라가 window까지 간다는말임
리스폰더는 리스폰더 체인을 관리하는데 그 관리하는 메소드중 이런것들 이 있다
becomeFirstResponder() resignFirstResponder()
textField의 경우 (얘도 리스폰더임) firstResponder가 되는 순간 키보드가 튀어나옴
그리고 FirstResponder 가 아니면 키포드를 꺼버린다.
그래서 becomeFirstResponde() 를 하면 키보드가 나오고 resignFirstResponder()을 하면 꺼진다.
'개발 > Swift' 카테고리의 다른 글
[Swift] Dynamic Dispatch / Static Dispatch (0) 2021.12.20 [Swift] frame이 다시 초기화 되는 오류 - translatesAutoresizingMaskIntoConstraints (0) 2021.12.08 [Swift] PromiseKit 사용하여 콜백지옥 빠져나오기 (0) 2021.11.30 [Swift 코딩테스트] 프로그래머스 - 체육복 (0) 2021.11.29 GCD - DispatchQueue Main/Global 큐 스레드에 관해 (0) 2021.11.23