objective-c - 仅当应用程序处于事件状态时才显示 NSStatusItem 菜单

标签 objective-c cocoa

仅当应用程序处于事件状态时,我才使用此方法显示 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/

相关文章:

objective-c - 压缩代码有什么好处吗?

macos - 如何告诉 NSTextView 在哪一侧扩展选择?

macos - NSView 有背景颜色吗?如果有的话我找不到

iphone - Facebook iOS SDK 3.0,在 url 上实现类似的操作?

objective-c - 自定义 NSUserNotification 对象

objective-c - UIView图层圆角和-drawRect :

iphone - 如何在 iOS 项目中使用 C 代码 (libqrencode)

objective-c - NSMenuItem 的标题未通过绑定(bind)更新

iphone - 有没有办法使用 CaptiveNetwork 获取 SNR(信噪比)?

objective-c - 如何从 Modal ViewController 重新加载父 UITableViewController 中的数据