IPhone Интерфейс Builder и делегатов

Когда я делаю пример приложения (т.е. начинаю с приложения панели вкладок или что-то еще), в моем файле MainWindow.xib я вижу 5 перечисленных элементов: владелец файла, первый ответчик, делегат приложения, окно и вкладка Бар-контроллер.

Если я создаю еще один .xib файл и сделаю для него делегат, и установлю File Owner на свой новый делегат, который я только что сделал, я НЕ вижу "NewDelegateFile" в списке объектов... (?) для этого .xib.

Это не имеет смысла для меня, и я думаю, что это огромная часть того, почему я не очень быстро увлекаюсь разработкой iPhone.

Кто-нибудь хочет потратить время, чтобы объяснить мне эту небольшую особенность?

Ответ 1

Владелец файла не является реальным объектом в файле xib. Это прокси-объект. Он представляет объект, который станет владельцем xib при его загрузке. Первым ответчиком являются и ответчик-ответчик. Первым ответчиком является объект, который в настоящее время находится поверх цепочки ответчиков. При изменении состояния приложения другой объект может быть первым ответчиком. Вы используете этот прокси-объект для подключения таких вещей, как меню "Файл- > Сохранить", к любому объекту, который отвечает за его обработку в любой момент времени.

Делегат приложения - это фактический объект. Он загружается, когда загружается xib. Как вы видите в Interface Builder, он подключается к выходу делегата владельца файла. Приложение загружает MainWindow.xib, это значит, что владелец файла.

Другой файл xib обычно загружается через объект-делегат. Этот объект делегирования является владельцем файла. Но сам делегат создается из кода. Он не загружается из xib. Вот почему он не показан в Interface Builder.

xib файлы содержат фактические сериализованные объекты. Владелец файла и первый ответчик являются исключениями. Они представляют собой другой, уже существующий объект.

Владелец файла (часто UIViewDelgate в файлах не MainWindow.xib) - это курица. Xib - это яйцо. Сам цыпленок не содержится в яйце.

Немного длинный. Надеюсь, что это поможет.