Как работает управление окнами при разработке Mac для приложений MenuBar? - PullRequest
0 голосов
/ 16 июля 2011

Я предвосхищу это, говоря, что это мое первое приложение для Mac, хотя я уже некоторое время собираю приложения iOs.

У меня есть приложение в строке меню (приложение в системном трее), с помощью которогоЯ имею в виду, что у меня есть this .

Теперь я хочу показать NSWindow, которое я создал в Interface Builder, поэтому я создал класс, производный от NSWindow.Сделал мой класс делегатом окна, и из приложения «Делегат» я делаю это:

MyClass *myClass = [[MyClass alloc] init];
[myClass display];
[myClass center];
[NSApp activateIgnoringOtherApps:YES];
[viewer makeKeyAndOrderFront:nil];

Похоже, что это показывает окно без стандартных оконных кнопок (свернуть, развернуть, закрыть), а не окно, которое я определил.

Это правильный способ показывать окна?и как должно быть определено Окно, чтобы оно отображало мой разработанный интерфейс?

В программировании Windows Forms это будет:

Form myForm = new Form();
myForm.Show();

1 Ответ

2 голосов
/ 16 июля 2011

Вам редко нужно создавать подкласс NSWindow, если вы не хотите переопределять поведение окна.Более типичным сценарием использования было бы использование экземпляра NSWindowController или подкласса NSWindowController для управления окном, сделав этот класс владельцем файла в Interface Builder.Как только это будет сделано, чтобы получить экземпляр окна, используйте:

NSWindowController *wc = [[NSWindowController alloc] initWithWindowNibName:@"NIBNAMEHERE"];
[wc showWindow:nil];

Другая альтернатива в вашем приложении - добавить NSWindow IBOutlet к вашему делегату приложения и загрузить окно в вашем делегате приложения с помощью

[NSBundle loadNibNamed:@"NIBFILENAME" owner:self];
[_window makeKeyAndOrderFront];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...