Создайте NSMenu для NSStatusBar.systemStatusBar программно

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

- (void)awakeFromNib
{
    NSMenu *stackMenu = [[NSMenu alloc] initWithTitle:@"Status Menu"];
    NSMenuItem *soMenuItem = 
        [[NSMenuItem alloc] initWithTitle:@"Status Menu Item" action:nil keyEquivalent:@"S"];
    [soMenuItem setEnabled:YES];
    [stackMenu addItem:soMenuItem];
    statusItem = [[[NSStatusBar systemStatusBar]
                   statusItemWithLength:NSVariableStatusItemLength]
                  retain];
    [statusItem setMenu:stackMenu];
}

person Jeff Swensen    schedule 21.03.2011    source источник


Ответы (1)


Я не верю, что NSStatusItem неявно возьмет на себя title связанного с ним NSMenu (что, как я предполагаю, вы хотите, чтобы произошло). Попробуйте явно установить title NSStatusItem (и/или его image).

e.x.

[statusItem setTitle:[stackMenu title]];
person Sam    schedule 21.03.2011
comment
Или его view. (И да, это определенно причина, по которой вы ничего не увидите с кодом OP.) - person Chuck; 21.03.2011
comment
Только что понял это перед обновлением страницы. Спасибо! - person Jeff Swensen; 21.03.2011