7
我有了下面的方法自定義NSWindow類:NSWindow未收到任何通知,當它失去焦點
- (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];
}
我打電話[_window setupWindowForEvents];
但windowDidResignKey
不會被調用。
這是我打電話給我的NSWindow:點擊狀態欄項目時我makeKeyAndOrderFront
和窗口顯示在狀態欄項目的正下方,這樣的:
任何想法,爲什麼我在沒有得到任何通知當窗戶失去焦點時?我已經使用NSWindowDidResignMainNotification
和NSWindowDidResignKeyNotification
來查看這些工作是否有效,但沒有任何工作。
太感謝你了,完全忘了這一點。順便說一句,你能解釋我通知'NSWindowDidResignMainNotification'和'NSWindowDidResignKeyNotification'之間的區別嗎? –
好問題。關鍵窗口是當前具有第一響應者狀態並響應用戶輸入的窗口。主窗口就像關鍵窗口,除非它們不一定需要第一響應者狀態。兩個國家似乎都集中注意這可能對你有用:https://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/WinPanel/Concepts/ChangingMainKeyWindow.html –