我有一个OSX应用程序,除了NSStatusBar中显示的图标外,还有自己的窗口。 NSStatusBar的原因是在主窗口关闭时启用应用程序在后台运行。当我尝试单击状态栏图标时,我必须在收到响应之前单击两次(显示一个弹出窗口)。我想点击一次,立即得到回应。 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这样的one,但没有解决我的问题。任何帮助将不胜感激。谢谢。 Ť
更新 我最终使用优秀的库CCNStatusItem
创建了我的StatusItem