2011-08-11 61 views
1

仅当应用程序处于活动状态时,才使用此方法来显示NSStatusItem菜单。仅当应用程序处于活动状态时才显示NSStatusItem菜单

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

它完美的工作,但cancelTracking似乎阻止NSStatusItem的蓝色突出显示。所以当我点击状态菜单项时,它不显示子菜单,它显示主窗口,但图标没有突出显示。 有没有办法让它发生?

回答

1

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

相关问题