Подтвердить что ты не робот

Есть ли понятное руководство (новое для Cocoa, Xcode и т.д.) Для Interface Builder, которое говорит о прокси-объектах?

В один из дней C/С++ часть языка, который действительно повесил меня, был указателем. Я понимаю их сейчас, конечно.

Теперь объекты прокси-сервера Interface Builder или, что более важно, как использовать Interface Builder и что помещать в окно .XIB(окно, которое содержит File Owner, First Responder и т.д.) для данного XIB.

Я провел немало примеров из книг и образцов, найденных как в примерах Xcodes, так и в Интернете. Они были полезны, но я все еще чувствую себя немного потерянным.

Я считаю, что понимание IB очень важно для понимания того, как писать приложения для Mac/iPhone/iPod touch.

Я до сих пор использовал следующие ресурсы: Aaron Hillegass 'Cocoa Программирование для Mac OS X Ресурсы прагматичного программиста: Стать продуктивным в Xcode (screencast) Cocoa Программирование Кодирование в Objective-C 2.0 (screncast) Написание первого приложения для iPhone (screencast) Разработка iPhone SDK

Я также перешел к Руководству пользователя интерфейса Builder от Apple.

Любые предлагаемые советы/ресурсы будут оценены!

4b9b3361

Ответ 1

Во-первых, placeholder - лучшее слово, чем прокси здесь.

Обычно, когда у вас есть объект в файле NIB/XIB, это означает, что загрузка файла NIB создаст этот экземпляр. Объекты-заполнители - это объекты, которые уже существуют при загрузке файла NIB, и они отображаются внутри NIB, чтобы вы могли устанавливать соединения между объектами, которые будут созданы путем загрузки NIB и объектов, которые уже существуют.

Владелец файла, первый ответчик и приложение - все заполнители.

Владелец файла является заполнителем для объекта, который будет загружать наконечник. Все методы загрузки NIB принимают параметр "владелец". Когда вы устанавливаете соединение с владельцем файла, когда он устанавливается во время выполнения, он будет подключен к объекту владельца, переданному в метод загрузки nib. Многие классы UIKit и AppKit вызывают методы загрузки nib. NSApplication, NSViewController, NSWindowController, UIApplication и UIViewController все загружают файлы NIB от вашего имени. Когда они это делают, они передают себя как параметр владельца методам загрузки nib. Поэтому, когда вы используете контроллер вида или контроллер окна, вы устанавливаете владельца файла в свой подкласс и выполняете большую часть соединений между вашими представлениями и владельцем файла.

Экземпляр NSApplication является простым заполнителем для [NSApplication sharedApplication]. Глобальный синглтон и значок в Interface Builder представляют глобальный синглтон. Загрузка файла NIB не создает второй экземпляр NSApplication. В отличие от этого, когда файл NIB содержит окно, если вы загружаете его дюжину раз, у вас будет дюжина оконных экземпляров, но еще один экземпляр NSApplication.

Первый ответчик уникален. Подключение действия к первому ответчику означает, что когда действие запускается, оно должно динамически быть отправлено в цепочку ответчиков. Цепочка ответчика обычно начинается с целенаправленного представления и продолжается вверх по иерархии представлений и включает в себя некоторые контроллеры и делегаты. Каждый объект в цепочке получает выстрел при обработке действия. Элементы меню отлично работают с цепочкой ответчиков. Если у вас есть пункт меню "Сделать жирным шрифтом", который должен сделать выделенный выделенный текст полужирным шрифтом, вы можете начать с него, подключив его к подклассу NSApplication, но тогда вам нужно будет знать все ситуации, Make Bold ", и как обращаться с ними. Текстовому представлению и редактируемому веб-представлению, вероятно, понадобится другой код для обработки" сделать смелый ", и разлитие всего этого в одном объекте будет довольно сложным и не будет очень расширяемым. Вместо этого вы можете подключить действие пункта меню" Сделать жирным" до действия makeBold: для первого ответчика. Это означало бы, что при выборе пункта меню фокусированный объект или один из его родителей, ответивший на makeBold:, получит сообщение makeBold:. Теперь многие классы могут реализовать метод makeBold: и отвечать на этот пункт меню, когда они находятся в фокусе.

Ответ 2

За исключением "File Owner" (который подключается при загрузке nib/xib), объекты, созданные вами в IB, являются реальными объектами, а не прокси-объектами.

Вы можете просмотреть какой-нибудь существующий пример кода, чтобы увидеть, как IB перехватывает вещи. Есть ли что-нибудь в документации/учебниках, которые вы прочитали, что смущает вас? Трудно многое сделать с "немного потерянным".

Ответ 3

В Apple есть следующий документ, в котором описываются объекты-заполнители File Owner, Первый ответчик и Application, найденный в файлах NIB/XIB Interface Builder

Руководство пользователя интерфейса Builder: Объекты-заполнитель

Я понял в вашем вопросе, о котором вы говорили, читайте документы Apple Interface Builder, но я счел целесообразным опубликовать это здесь для дальнейшего использования. Кроме того, документы были обновлены, так как ваш вопрос был впервые задан, так что, возможно, с тех пор они стали более понятными.