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

Objective c 以编程方式为NSStatusBar.systemStatusBar创建NSMenu,objective-c,cocoa,macos,nsmenuitem,nsmenu,Objective C,Cocoa,Macos,Nsmenuitem,Nsmenu,我正在尝试仅使用代码在系统状态栏中创建一个简单的菜单。我没有收到任何编译或运行时错误,但我看不到任何影响 - (void)awakeFromNib { NSMenu *stackMenu = [[NSMenu alloc] initWithTitle:@"Status Menu"]; NSMenuItem *soMenuItem = [[NSMenuItem alloc] initWithTitle:@"Status Menu Item" action:nil

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

- (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];
}

我不相信
NSStatusItem
会隐式地承担与其相关联的
NSMenu
标题(我猜这是您希望发生的事情)。请尝试显式设置
NSStatusItem
标题(和/或其
图像

e、 十,


或其
视图
。(是的,这就是为什么你看不到任何操作码的原因。)在刷新页面之前,先弄清楚这一点。谢谢
[statusItem setTitle:[stackMenu title]];