ho una classe NSWindow personalizzata che possiede i seguenti metodi:NSWindow non riceve alcuna notifica quando si perde lo stato attivo
- (void)setupWindowForEvents{
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(windowDidResignKey:) name:NSWindowDidResignMainNotification object:self];
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(windowDidResignKey:) name:NSWindowDidResignKeyNotification object:self];
}
-(void)windowDidResignKey:(NSNotification *)note {
NSLog(@"notification");
[self close];
}
chiamo [_window setupWindowForEvents];
ma il windowDidResignKey
non viene mai chiamato.
Questo è come io chiamo il mio NSWindow: quando l'elemento barra di stato viene cliccato mi makeKeyAndOrderFront
e la finestra viene visualizzata a destra sotto la voce di barra di stato, in questo modo:
Tutte le idee perché l'ho non si ottiene alcuna notifica quando la finestra perde la messa a fuoco? Ho usato sia NSWindowDidResignMainNotification
e NSWindowDidResignKeyNotification
per vedere se qualcuno di questi ha funzionato, ma nessuno funziona.
grazie mille, completamente dimenticato di questo. btw, puoi spiegarmi la differenza tra le notifiche 'NSWindowDidResignMainNotification' e' NSWindowDidResignKeyNotification'? –
Buona domanda. Le finestre chiave sono quelle che attualmente hanno il primo stato di risponditore e rispondono all'input dell'utente. Le finestre principali sono come le finestre chiave, tranne che non devono necessariamente avere il primo stato di risponditore. Entrambi gli stati appaiono concentrati. Questo potrebbe essere utile per te: https://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/WinPanel/Concepts/ChangingMainKeyWindow.html –