2011-10-12 14 views
8

Ho un'app che utilizza uno NSStatusItem. Su schermi piccoli non c'è molto spazio nella barra di stato. Quando un utente passa a un'applicazione con molte voci di menu, la mia voce di stato viene nascosta. C'è un modo per essere avvisati di questo?Essere informati di quando NSStatusItem è nascosto

quello che ho provato finora:

  • ho controllato se qualsiasi NSNotification viene sparato: No
  • ho controllato se il statusView viene rimosso dalla gerarchia della vista: No
  • ho controllato isHiddenOrHasHiddenAncestor: No

Ecco il codice che uso per creare l'elemento di stato.

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]; 
+0

è possibile verificare se la proprietà view.center cambia mentre si sposta dallo schermo? Potresti essere in grado di aggiungere la notifica KVO alla proprietà centrale per stabilire una sorta di callback, ma non so se funzionerebbe per un statusItem. – Suz

+0

Ho anche un timer in esecuzione che registra i limiti relativi alla finestra. Non cambia ... Sembra che MaView sia nella sua finestra (NSWindow> NSNextStepFrame> maView). Proveremo a vedere se questo viene spostato dallo schermo. – stigi

+0

Anche i limiti delle finestre sono ancora sullo schermo. La finestra potrebbe essere sovrapposta da qualcos'altro. Non so come controllare per questo però .. – stigi

risposta

1

è abbastanza intelligente di voi a capire che quando un elemento di stato è nascosta, la sua finestra verrà spostato in secondo piano.

Ora la notifica che stai cercando è: NSWindowDidResignKeyNotification (o NSWindowDidResignMainNotification a seconda del contesto dell'applicazione)

Per una chiara spiegazione sulla differenza tra una finestra chiave e una finestra principale, vedi this .

+0

Questa risposta non funziona, -1, nessuna notifica di questo tipo viene inviata quando un NSStatusItem è nascosto – Vervious

+0

-1: I second @Vervious - questa risposta è peggio che inutile, mi ha fatto sprecare il mio tempo cercando di farlo lavoro. – ArtOfWarfare

Problemi correlati