以编程方式为NSStatusBar.systemStatusBar创建NSMenu

Jef*_*sen 2 macos cocoa objective-c nsmenu nsmenuitem

我正在尝试使用仅代码在系统状态栏中创建一个简单的菜单.我没有收到任何编译或运行时错误但我看不到任何影响.

- (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];
}
Run Code Online (Sandbox Code Playgroud)

Sam*_*Sam 5

我不相信NSStatusItem意志隐含地承担了它titleNSMenu相关性(这是我猜你想要发生的事情.)尝试明确设置NSStatusItem's title(和/或它image).

[statusItem setTitle:[stackMenu title]];
Run Code Online (Sandbox Code Playgroud)