Ped*_*ira 8 macos cocoa objective-c nsnotifications 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];
}
Run Code Online (Sandbox Code Playgroud)
我打电话[_window setupWindowForEvents];但windowDidResignKey永远不会被叫.
这就是我调用NSWindow的方式:当单击状态栏项目时,我makeKeyAndOrderFront和窗口显示在状态栏项目的正下方,如下所示:
当窗口失去焦点时,我没有得到任何通知的任何想法?我已经使用了两者NSWindowDidResignMainNotification,NSWindowDidResignKeyNotification看看这些是否有效,但没有一个有效.
你可能没有收到通知,因为你实际上从来都不是第一位的.您的窗口似乎是无边框的,默认情况下无边框窗口不会获取关键窗口状态.
在窗口子类中,请确保在以下方法上返回YES:
- (BOOL)canBecomeKeyWindow {
return YES;
}
- (BOOL)canBecomeMainWindow {
return YES;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3627 次 |
| 最近记录: |