NSWindowController и NSViewController - PullRequest
       93

NSWindowController и NSViewController

7 голосов
/ 20 февраля 2011

Вероятно, довольно простой вопрос, но я не могу обойти его.

Я хотел бы создать своего рода мастера: NSWindow отображается как лист из другого NSWindow и должен отображать три разных NSView s один за другим.

Я думаю, мне следует создать пользовательские NSWindowController и три NSViewController с, но я не знаю, как настроить контроллеры и как обмениваться мнениями.

Ответы [ 2 ]

12 голосов
/ 20 февраля 2011

Короче говоря, ваш оконный контроллер должен создать три контроллера представления, иметь представление хоста и добавить -[NSView addSubview:] или удалить -[NSView removeFromSuperView] представления контроллеров представления как подпредставления представления хоста.В зависимости от того, как вы структурируете свой код, вы также можете использовать -[NSView replaceSubview:with:] для замены подпредставления другим.

Пример кода Apple View Controller поддерживает переключение представлений с помощью контроллеров представления.

0 голосов
/ 13 августа 2014

@ Bavarious asnwer - это хорошо, людям, подобным мне, всегда нужен хороший фрагмент кода:

appDelegate = (AppDelegate*)[[NSApplication sharedApplication] delegate];
self.masterViewController = [[MasterViewController alloc] initWithNibName:@"MasterViewController" bundle:nil];
[appDelegate.window.contentView replaceSubview:self.view with:self.masterViewController.view];

Я создаю объект appDelegate, потому что он вызывается из NSViewController, иначе вы можете получитьвзгляд от самого себя.

...