От iPhone OS к какао на OSX - PullRequest
       0

От iPhone OS к какао на OSX

1 голос
/ 08 июня 2010

Я родом из iPhone OS. Сейчас я пытаюсь писать приложения для OSX, но я не понимаю, где какао на OSX решает, где программа получает контроль.

Я вижу основную функцию, но куда же оттуда уходит управление программой? Скажем, например, я хочу программно создать окно с NSView в нем после завершения запуска приложения - как бы я это сделал? Я не вижу созданного делегата приложения, в iPhone OS я бы дождался -(void) applicationDidFinishLaunching:(UIApplication *)application метод, который будет вызван. Я действительно не хочу использовать Interface Builder или файлы NIB для настройки моего окна / представления. Как бы я пошел по этому поводу?

1 Ответ

1 голос
/ 08 июня 2010

Это очень похоже на iPhone. В вашем классе контроллера приложения переопределите метод делегата NSApplication applicationDidFinishLaunching. Если вы использовали стандартный шаблон проекта Xcode, то ваш контроллер приложения уже создан в вашем Interface Builder MainMenu.xib и назначен делегатом приложения; в противном случае вам нужно будет перетащить его туда и установить эти соединения самостоятельно.

Говоря в более общем смысле, приложение OS X начинает свою жизнь в основном методе, где Cocoa автоматически настроит цикл выполнения вашего приложения и загрузит файл .xib, указанный в Info.plist. Обычно в этом xib создается ваш контроллер приложения. Переопределив один из методов, таких как +initialize, -init, -applicationWillFinishLaunching или -applicationDidFinishLaunching (у каждого из которых слегка различное поведение), вы можете загрузить дополнительные контроллеры и кончики с объектами, которые будут взаимодействовать с циклом выполнения в будущем , поэтому вы можете продолжить выполнение кода после завершения метода запуска.

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