Простое приложение Cocoa с иконкой MenuBar. Как:?

Я пытаюсь сделать приложение Cocoa довольно простым. У меня три окна с тремя сообщениями на них, что все есть. Я пытаюсь сделать следующее:

Пользователь запускает приложение, появляется значок приложения в строке меню, и все, что происходит, отсутствует меню и значок док-станции

Затем пользователь может щелкнуть значок MenuBar и иметь раскрывающийся список и выбрать один из трех доступных сообщений.

Я знаю, что это бесполезно, но это буквально мое первое приложение, и я не могу понять, как заставить NSStatusItem работать правильно...

Я огляделся и нашел несколько уроков, но я не могу следовать никому из них... любая помощь?

Ответы

Ответ 1

  • Что касается значка "no dock icon" - добавьте boolean LSUIElement в файл Info.plist и установите значение true. Это также не будет отображаться в пользовательском интерфейсе переключателя приложений (cmd + tab).
  • Добавление значка в строке меню так же важно, как просмотр документации NSStatusBar и NSStatusItem и использование кода примера там:

.

// this one is taken from apple documentation
- (void)activateStatusMenu {
    NSStatusBar *bar = [NSStatusBar systemStatusBar];

    theItem = [bar statusItemWithLength:NSVariableStatusItemLength];
    [theItem retain];

    [theItem setTitle: NSLocalizedString(@"Tablet",@"")];
    [theItem setHighlightMode:YES];
    [theItem setMenu:theMenu];
}

- (void)applicationDidFinishLaunching:(NSNotification *)aNotification {
    [self activateStatusMenu];
}

Обновить. Поскольку ARC не разрешает вызовы retain в коде, мне удалось решить проблему, создав переменную экземпляра theItem как __strong класса, в котором создается элемент.