【问题标题】:NSStatusItem dissapears instantly after launching application [duplicate]NSStatusItem 在启动应用程序后立即消失[重复]
【发布时间】:2022-01-27 16:26:09
【问题描述】:

我正在使用情节提要,这是我下面的代码。

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

状态项确实在菜单栏中显示为一个框架,然后立即消失。我已经尝试过使用和不使用图像,但在它消失之前我无法让它显示超过一秒钟。有谁知道这是什么原因以及如何预防?

【问题讨论】:

标签: objective-c macos storyboard


【解决方案1】:

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

你需要一个强引用,例如一个属性

@property (strong) NSStatusItem *status_item;

然后

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

【讨论】:

  • 谢谢!我知道你必须对菜单有强烈的反感,但我不知道你也需要对状态项有强烈的反感。
  • @SeizureSalad NSStatusItem 对其菜单有很强的参考意义,你没有。
猜你喜欢
  • 2021-08-26
  • 2018-02-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-04-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多