I have an app which uses an NSStatusItem
. On small screens there's not much space in the status bar. When a user switches to an application with a lot of menu items, my status item gets hidden. Is there a way to get notified about this?
What I tried so far:
NSNotification
is fired: NostatusView
is removed from the view hierarchy: NoisHiddenOrHasHiddenAncestor
: NoHere's the code I use to create the status item.
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];
It's pretty smart of you to realize that when a status item is hidden, its window will be moved into the background.
Now the notification you're looking for is: NSWindowDidResignKeyNotification (or NSWindowDidResignMainNotification depending on the context of your application)
For a clear explanation about the difference between a key window and a main window, see this.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With