mam niestandardową klasę NSWindow który ma następujące metody:NSWindow nie odbiera żadnego powiadomienie gdy traci fokus
- (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];
}
nazywam [_window setupWindowForEvents];
ale windowDidResignKey
nigdy nie jest wywoływana.
ten sposób wzywam moje NSWindow: gdy pozycja na pasku stanu zostanie kliknięty I makeKeyAndOrderFront
i okno jest wyświetlane tuż pod elementu paska statusu, tak:
Wszelkie pomysły, dlaczego nie dostać żadnego powiadomienia kiedy okno traci ostrość? Użyłem obu i NSWindowDidResignKeyNotification
, aby sprawdzić, czy któryś z nich zadziałał, ale żaden z nich nie działa.
dziękuję bardzo, zupełnie o tym zapomniałem. btw, czy możesz wyjaśnić mi różnicę między powiadomieniami 'NSWindowDidResignMainNotification' i' NSWindowDidResignKeyNotification'? –
Dobre pytanie. Kluczowe okna to te, które mają obecnie status pierwszego ratownika i odpowiadają na dane wprowadzone przez użytkownika. Główne okna są jak okna kluczowe, ale niekoniecznie muszą mieć status pierwszego ratownika. Oba stany wydają się skupione. To może być przydatne: https://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/WinPanel/Concepts/ChangingMainKeyWindow.html –