Интерфейсный Разработчик и Какао: подключение позади класса Контроллера приложения - PullRequest
0 голосов
/ 09 февраля 2011

Я следовал этому учебнику. У меня возникли концептуальные проблемы в тот момент, когда класс App Controller написан, а затем добавлен и подключен в Interface Builder.

Добавление класса AppController Следующая задача - добавить экземпляр новый класс для Интерфейсного Разработчика документ и подключить класс выходы.

Создать экземпляр Класс AppController. В интерфейсе Окно библиотеки Builder, нажмите Classes. Найдите класс AppController. Тащить, тянуть этот класс в окно документа, чтобы создать экземпляр с именем App Контроллер. Подключите приложение Выход контроллера qcWindow на дизайнерское окно. Удерживайте нажатой клавишу Control ключ. В окне документа перетащите из Контроллер приложения в окно объект. Выберите выход qcWindow из списка, который появляется. соединять выход qcView контроллера приложения для вид контроля качества в окне дизайна. Держать нажмите клавишу управления. Перетащите из Контроллер приложения для представления QC в дизайнерское окно. Выберите qcView выход из появившегося списка.

В частности, я не понимаю, как этот контроллер приложений используется во время выполнения. Все, что я делал, это подключал окно и просматривал выходы внутри IB, и он волшебным образом работал так, как если бы он был инициализирован в методе applicationDidFinishLaunching:aNotification моего делегата приложения. Я хочу сказать, что я нигде не использую свой класс App Controller в своем коде, и все, что я сделал в IB, это подключил его выходы, так как он работает?

1 Ответ

2 голосов
/ 09 февраля 2011

Когда ваше приложение запускается, создается общий экземпляр NSApplication , и MainMenu.xib / nib загружается и его содержимое (включая само главное меню) подключается. Во время этих процессов загрузки делегат экземпляра NSApp указывает на ваш класс «un-freeze-dry» (unarchived), который (среди прочего) может ответить на вопросы делегата NSApp и затем может начать обмен сообщениями (и полагаться на него для App поведенческие настройки).

Одним из полезных аспектов всего этого является то, что вы можете получить доступ к делегату из любой точки вашего приложения через [NSApp delegate], что сокращенно от [[NSApplication sharedApplication] delegate]. Это очень удобно для навигации по частям вашей архитектуры, если вы подвешиваете их к делегату приложения и предоставляете для них средства доступа (например, [[NSApp delegate] fooController]).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...