2012-04-09 6 views
3

У меня есть окно, содержащее несколько довольно сложных видов. Прямо сейчас, я использую единственный NSWindowController для управления пользовательским интерфейсом для окна и всех представлений. Это становится довольно огромным классом, поскольку он имеет дело с деталями каждого взгляда.Подсоединение нескольких NSViewControllers к нибу

Поведение взгляда не зависит друг от друга, поэтому я вижу возможность поместить логику пользовательского интерфейса для каждого представления в отдельный контроллер.

Согласно Mac App Programming Guide, это именно то, что вид контроллеры для:

Используйте вид контроллеров разделить работу для управления более сложные схемы размещения окон. Контроллеры просмотра работают вместе с (с помощью оконного контроллера) для представления содержимого окна.

Однако я не могу найти никакой документации или примеров того, как эта идея работает на практике. Могу ли я добавить несколько контроллеров представлений в файл nib в дополнение к оконному контроллеру?

ответ

3

Если вы добавите контроллеры представления в наконечник, вот где они будут созданы, и вы добавите IBOutlet s в оконный контроллер (при условии, что это владелец файла nib), чтобы подключить их.

Что касается памяти, тем не менее, эта схема может стать дорогой, особенно с большим количеством контроллеров просмотра. Возможно, вы захотите вместо этого лениво создать их в оконном контроллере (т. Е. Делать это только тогда, когда это необходимо), считая, что это не приводит к нежелательной задержке перед представлением представления в первый раз.

Не бойтесь попробовать оба подхода. Один из них может быть лучше для вас.

В любом случае, я приветствую вас за ваше решение разложить весь этот код на отдельные контроллеры. Очень хорошо. Удачи вам в ваших начинаниях.