Архитектура приложения единого окна Mac OS X Cocoa

Я не могу понять, как спроектировать приложение оптимальным образом, чтобы приложение с одним окном работало в Mac OS X. Я бы предпочел один документ - приложение с одним окном (я не кодирую служебное приложение), но непонятно, где я должен инициализировать содержимое окна.

В iOS для этой цели я должен использовать метод -[UIViewController viewDidLoad] или -[UIViewController viewWillAppear:] контроллера корневого представления.

Не могли бы вы посоветовать мне какой-нибудь учебник или объяснить, как работать с классами NSDocument - NSDocumentController - NSWindowController - NSViewController?

Спасибо за ваши ответы. :-)


person Konstantin Chugalinskiy    schedule 10.06.2011    source источник


Ответы (1)


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

Я не понимаю, зачем использовать NSDocumentController для приложения с одним окном. NSViewController предназначен для управления вашими пользовательскими представлениями. Обычно он не используется в обычном простом приложении Mac, если только у вас нет пользовательских представлений, которыми вы хотите управлять специально.

Итак, в вашем AppDelegate, скажем, applicationDidFinishLaunching:, вы должны выделить и инициализировать оконный контроллер и показать окно.

В «Программировании какао для Mac OS X» Хиллегасса есть хорошая глава о том, как работать с оконными контроллерами. Конечно, в документах Apple также есть некоторые материалы по этому поводу.

person Enchilada    schedule 10.06.2011
comment
NSDocumentController можно легко изменить для работы с однооконным приложением. Причина, по которой вы хотели бы использовать его, заключается в том, что вы получаете очень много бесплатно с архитектурой документов Cocoa. - person Rob Keniger; 11.06.2011
comment
Но разве это не так, если вы действительно хотите специально открывать и сохранять документы? Я не особо вникал в это на самом деле. Вы получаете достаточно бесплатно, просто используя стандартные шаблоны однооконных приложений Apple. - person Enchilada; 11.06.2011