我有一个使用 NSStatusItem
的应用程序。在小屏幕上,状态栏没有太多空间。当用户切换到具有大量菜单项的应用程序时,我的状态项会被隐藏。有没有办法获得有关此事的通知?
到目前为止我尝试过的:
- 我检查了是否触发了任何
NSNotification
:否 - 我检查了
statusView
是否已从 View 层次结构中删除:否 - 我检查了
isHiddenOrHasHiddenAncestor
:否
这是我用来创建状态项的代码。
self.statusItem = [[NSStatusBar systemStatusBar] statusItemWithLength:NSVariableStatusItemLength];
MyStatusView *maView = [[[MyStatusView alloc] initWithFrame:CGRectMake(0, 0, 50, 22)] autorelease];
[statusItem setTitle:@"Ma Status Item"];
[statusItem setView:maView];
最佳答案
您很聪明地意识到,当状态项被隐藏时,其窗口将移至背景中。
现在您要查找的通知是: NSWindowDidResignKeyNotification (或NSWindowDidResignMainNotification,具体取决于您的应用程序的上下文)
有关键窗口和主窗口之间差异的清晰说明,请参阅 this .
关于objective-c - 当 NSStatusItem 隐藏时被通知,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12026019/