我有一个OSX应用程序,除了在NSStatusBar中显示的图标之外,还有自己的窗口。NSStatusBar的原因是,当主窗口关闭时,应用程序能够在后台运行。当尝试单击statusbar图标时,必须单击两次才能得到响应(显示了一个弹出)。我想点击一次,并立即得到回应。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;
}一切正常,除了我必须点击我的状态条图标两次,然后我得到一个答复。我在googled上搜索了这个,并找到了类似于这个问题的一,但是没有解决我的问题。任何帮助都将不胜感激。谢谢。T
更新:我最终使用优秀的库CCNStatusItem创建了自己的StatusItem
发布于 2015-04-10 16:29:03
你不可能真的影响到脑膜的窗户。对状态项使用自定义NSView。
见下面投票的答案:NSStatusItem发布图标
https://stackoverflow.com/questions/29565880
复制相似问题