启动应用程序后 NSStatusItem 立即消失

NSStatusItem dissapears instantly after launching application

我正在使用故事板,这是我下面的代码。

    - (void)applicationDidFinishLaunching:(NSNotification *)aNotification {
    // Insert code here to initialize your application
  NSStatusItem *status_item = [[NSStatusBar systemStatusBar] statusItemWithLength: -1];
    [status_item setMenu:_menu_bar_item];
    status_item.button.image = [NSImage imageNamed:@"MenuBarIcon"];
    status_item.button.imagePosition = NSImageLeft;
    status_item.button.title = @"foo";
    status_item.button.toolTip = @"bar";
    [status_item setVisible:true];
}

状态项确实在菜单栏中显示了一个框架,然后立即消失了。我已经尝试过使用和不使用图像,但在它消失之前我不能让它显示超过一瞬间。有谁知道造成这种情况的原因以及如何预防?

您正在创建对象,然后将其丢弃。

您需要一个强有力的参考,例如 属性

@property (strong) NSStatusItem *status_item;

然后

status_item = [[NSStatusBar systemStatusBar] statusItemWithLength: -1];