2015-01-08 4 views
1

Я пытаюсь прикрепить элемент NSMenu к NSStatusItem, чтобы иметь меню при нажатии на мое меню Bar App для Mac OS.Прикрепите NSMenu к NSStatusItem со раскадровки

Я новичок в программировании на Mac, и я искал учебники в Интернете. Тем не менее, весь найденный материал включает использование файла Xib для добавления NSMenu и связывания его с существующим кодом. Однако у меня нет такого файла в моем проекте, он включает только файл раскадровки.

Надеюсь, вы сможете помочь.

Приветствия

ответ

1

Вы можете создать меню программно и установить его в NSStatusItem, как это.

- (void)applicationDidFinishLaunching:(NSNotification *)aNotification { 
    _statusItem = [[NSStatusBar systemStatusBar] statusItemWithLength:30]; 
    _statusItem.image = [NSImage imageNamed:@"..."]; 

    // create menu 
    NSMenu *menu = [[NSMenu alloc] initWithTitle:@""]; 
    NSMenuItem *item1 = [[NSMenuItem alloc] initWithTitle:@"menu1" action:@selector(menu1Action:) keyEquivalent:@""]; 
    NSMenuItem *item2 = [[NSMenuItem alloc] initWithTitle:@"menu2" action:@selector(menu2Action:) keyEquivalent:@""]; 

    [menu addItem:item1]; 
    [menu addItem:item2]; 

    [_statusItem setMenu:menu]; // attach 
} 

Конечно, вы можете использовать NSMenu в розетку. Для этого перетащите NSMenu на сцену приложения в раскадровку и подключите ее к розетке AppDelegate.