仅当App处于活动状态时才显示NSStatusItem菜单

时间:2011-08-11 13:19:12

标签: objective-c cocoa

我正在使用此方法仅在应用程序处于活动状态时显示NSStatusItem菜单。

-(void)menuWillOpen:(NSMenu*)menu{  
    if(![NSApp isActive]){
        [menu cancelTracking];
    }
    [[NSApplication sharedApplication] activateIgnoringOtherApps:YES];
    [window makeKeyAndOrderFront:self]; 
}

它完美有效,但cancelTracking似乎阻止了NSStatusItem的蓝色亮点。因此,当我点击状态菜单项时,它不会显示子菜单,它会显示主窗口,但图标不会突出显示。 有没有办法让它成真?

1 个答案:

答案 0 :(得分:1)

如果您需要更精确地控制状态项何时突出显示自己,我建议您创建自定义视图。然后,您可以使用mouseDown:等。This是将自定义视图置于状态项中的一个很好的示例。