2014-10-24 4 views
2

맞춤 UIResponder 하위 클래스를 설정할 수 있습니까? 응용 프로그램의 수명주기를 통해 전달되는 UIEvent (특히 원격 제어 이벤트)에 대한 수신기를 구현해야합니다.맞춤 UIResponder 하위 클래스

UIViewController (가능한 한 부담을주지 않으려하고 있습니다)과 AppDelegate (가능한 한 할당 해제 예정)을 사용하지 않으려 고합니다.

+0

AppDelegate가이 코드를 삽입하기에 이상적인 장소 인 것처럼 보입니다. AppDelegate 프로토콜 참조에서 언급 된 요점 중 하나는 "앱 자체를 대상으로하며 앱의보기 또는보기 컨트롤러에만 국한된 이벤트에 응답합니다." 나는 당신이 그것에 대해 걱정해야한다고 생각하지 않습니다. – rdelmar

답변

2

분명히 수 있습니다. 하위 클래스 UIResponder이고 그 서브 클래스의 인스턴스를 만듭니다. 문제는 인스턴스를 응답자 체인으로 가져 오는 것이므로 UIResponder 메서드가 실제로 호출되고 나머지 응답자 체인이 중단되지 않습니다. 이것은 가능할 수도 있습니다 - iOS 기기의 UIKit에는 없지만 데스크톱의 Cocoa에서 확실히 해냈습니다.하지만 내 생각에 당신은이 독특한 혐오감을 갖는 이유에 대해 내성적 인 생각을하기보다는 훨씬 더 잘 할 것입니다. (UIViewController 또는 응용 프로그램 대리자에서) 분명히 가고 싶은 곳에 코드를 넣습니다.

+0

이 책임이 앱 대리인에게 속한 것인지 확실하지 않습니다. 회전 이벤트 또는 터치 이벤트와 마찬가지로 커스텀 오브젝트 (AD를 통해 퍼널이 아닌)가 처리해야하는 커스텀 이벤트입니다. – raheel

+0

그러나 그것은 건축 학적 미학의 사소한 부분입니다. 당신은 항상 그 기능을 애플 리케이션 델리게이트 또는 뷰 컨트롤러에 속한 도우미 객체로 나눌 수 있습니다 (_Design Patterns_ 참조). 그것은 요점이 아니다. 요점은 코코아가 _framework_이라는 것입니다. 즉, 코드를 실제로 호출 할 위치에 놓아야 함을 의미합니다. 보기 컨트롤러 또는 앱 대리인의 진입 점은 코드가 호출되는 곳입니다. 그것을 사용하고 계속 나아 간다. – matt

+1

물론, 프레임 워크와 싸울 생각은 없습니다. 내가 깨끗한 휴식을 취하기를 바란 이유를 묻고 있었어. "특이한 혐오감"은 당신이 내가 분명히하기를 바랬다. 그것은 사소한 일일 수도 있지만 가능하다면 나는 그것을 사용할 것입니다. 그러므로 원래의 질문. – raheel

관련 문제