仅当应用程序处于事件状态时,我才使用此方法显示 NSStatusItem 菜单。
-(void)menuWillOpen:(NSMenu*)menu{
if(![NSApp isActive]){
[menu cancelTracking];
}
[[NSApplication sharedApplication] activateIgnoringOtherApps:YES];
[window makeKeyAndOrderFront:self];
}
它工作得很好,但是cancelTracking似乎挡住了NSStatusItem的蓝色突出显示。因此,当我单击状态菜单项时,它不会显示子菜单,而是显示主窗口,但图标不会突出显示。 有办法让它发生吗?
最佳答案
如果您需要更精确地控制状态项何时突出显示自己,我建议您创建自定义 View 。然后你可以使用 mouseDown:
等 This是将自定义 View 放入状态项的一个很好的示例。
关于objective-c - 仅当应用程序处于事件状态时才显示 NSStatusItem 菜单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7026573/