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
除了 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