Как открыть окно по нажатию на NSStatusItem? - PullRequest
7 голосов
/ 26 марта 2011

Я довольно новичок в какао, поэтому, пожалуйста, извините меня за любые глупые ошибки, которые я делаю.У меня есть NSStatusItem, который я хочу использовать, чтобы открыть меню.Однако, насколько я знаю и слышал в разных формах, без пользовательского представления вы ограничены только всплывающим меню.Это правда?И если да, то как сделать пользовательский вид, чтобы что-то сделать (например, открыть окно в моем случае)?Спасибо за любую помощь.

1 Ответ

14 голосов
/ 26 марта 2011

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

// This goes where you set up the status item
NSStatusItem *statusItem; // You need to get this from the status bar
[statusItem setTarget:self];
[statusItem setAction:@selector(openWindow:)];

// This method is called when the status item is clicked
- (void)openWindow:(id)sender {
    NSWindow *window = [self window]; // Get the window to open
    [window makeKeyAndOrderFront:nil];
}

Вы также можете вызвать [NSApp activateIgnoringOtherApps:nil]; для вашего openWindow:способ убедиться, что открываемое окно не находится за окном какого-либо другого приложения.

...