NSStatusItem 只在点击两次后有响应

NSStatusItem only responds after clicking twice

除了 NSStatusBar 中显示的图标外,我还有一个 OSX 应用程序,它有自己的 window。 NSStatusBar 的原因是当 main window 关闭时,使应用程序能够在后台 运行 。尝试单击状态栏图标时,我必须单击两次才能得到响应(显示弹出窗口)。我想点击一次并立即得到回应。 NStatusBar 是这样设置的:

NSStatusItem *statusItem = [[NSStatusBar systemStatusBar]statusItemWithLength:32];
        statusItemView = [[SDStatusItemView alloc] initWithStatusItem:statusItem];
        statusItemView.image = [NSImage imageNamed:@"myLogo"];
        statusItemView.alternateImage = [NSImage imageNamed:@"myLogo"];
        statusItemView.target=self;
        statusItemView.action = @selector(togglePanel:);

        [self.statusItemView.window setIgnoresMouseEvents:NO];
        [self.statusItemView.window setAcceptsMouseMovedEvents:YES];

我的 statusItemView(NSView 的子类)设置为:

-(BOOL) acceptsFirstResponder{
    return YES;
}

- (BOOL)canBecomeKeyWindow
{
    return YES;
}

一切正常,除了我必须单击状态栏图标两次才能得到响应。我用谷歌搜索了这个并找到了类似的 questions like this one,但没有解决我的问题。任何帮助将不胜感激。谢谢。 T

更新: 我最终使用优秀的库 CCNStatusItem

创建了我的 StatusItem

您无法真正影响菜单栏的 window。为您的状态项使用自定义 NSView。

在此处查看被否决的答案:NSStatusItem releases icon