2009-04-17 5 views
14

MainWindow.xib 파일에서 샘플 앱을 만들면 (즉, 탭 막대 응용 프로그램 또는 다른 것으로 시작하는 경우) 파일 소유자, 첫 번째 응답자, App Delegate , 창 및 탭 막대 컨트롤러.iPhone Interface Builder 및 Delegates

다른 .xib 파일을 만들고 대리인을 만들고 방금 만든 새 위임자로 해당 파일 소유자를 설정하면 ... 개체 목록에 "NewDelegateFile"이 표시되지 않습니다 (?) .xib에 대한.

이것은 나에게 의미가 없으며, 왜 내가 아이폰 개발에 모든 걸 빨리 잡을 수 없는지에 대한 중요한 부분이라고 생각한다.

저에게 그 작은 특이성을 설명하는 데 시간을내어 신경 써주시겠습니까?

+1

저는 거의 같은 질문을 다시했습니다. http://stackoverflow.com/questions/1911916/placeholder-objects-in-interface-builder. 이러한 대답은보다 자세하게 설명하고 혼동을 줄여야합니다. – Casebash

답변

24

파일 소유자가 xib 파일의 실제 개체가 아닙니다. 이것은 프록시 객체입니다. 로드 될 때 xib의 소유자가 될 오브젝트를 나타냅니다. 첫 번째 응답자와 App Delegate도 프록시입니다. 첫 번째 응답자는 현재 응답자 체인 맨 위에있는 객체입니다. 응용 프로그램의 상태가 변경되면 다른 객체가 첫 번째 응답자가 될 수 있습니다. 이 프록시 객체를 사용하여 File-> Save 메뉴와 같은 객체를 언제든지 처리 할 책임이있는 객체에 연결합니다.

앱 위임은 실제 개체입니다. xib이로드 될 때 살기에 좋습니다. Interface Builder에서 볼 수 있듯이 파일 소유자의 대리자 콘센트에 연결되어 있습니다. 응용 프로그램은 MainWindow.xib를로드합니다. 따라서 파일의 소유자가됩니다.

다른 xib 파일은 일반적으로 대리인 객체를 통해로드됩니다. 위임 객체는 파일의 소유자입니다. 그러나 델리게이트 자체는 코드에서 인스턴스화됩니다. xib에서로드되지 않았습니다. 이것이 인터페이스 빌더에 표시되지 않는 이유입니다.

xib 파일에는 실제 일련 번호가 지정된 개체가 들어 있습니다. File 's Owner와 First Responder는 예외입니다. 그것들은 이미 존재하는 다른 객체를 나타냅니다.

파일 소유자 (종종 MainWindow.xib 파일이 아닌 UIViewDelgate)는 닭입니다. xib은 계란입니다. 닭 자체는 알에 포함되어 있지 않습니다.

조금 깁니다. 희망이 도움이됩니다.

+1

이 답변을 무시하지 않았습니다. 그것은 단지 나에게 놀기의 날을 가져 갔고, 그것을 이해하기 위해 계속해서 또 다시 읽었다. 그리고 지금은 생각합니다. 정말 고마워. 내 생각이 어떻게되어야한다고 생각 하느냐에 조금 어긋나지 만, 내 머리가 이렇게 생각하려고 노력할 것입니다. 답장을 보내 주셔서 감사합니다. –

관련 문제