Objective c 检测活动文档的焦点/非焦点
是否仍有方法检测文档的焦点/非焦点?我想动态更新与活动文档相关的菜单项,但我看不到任何立即明显的方法 原因是,我想在文档焦点上激活并填充菜单,然后在失去焦点时取消并停用菜单 有什么想法吗Objective c 检测活动文档的焦点/非焦点,objective-c,cocoa,macos,Objective C,Cocoa,Macos,是否仍有方法检测文档的焦点/非焦点?我想动态更新与活动文档相关的菜单项,但我看不到任何立即明显的方法 原因是,我想在文档焦点上激活并填充菜单,然后在失去焦点时取消并停用菜单 有什么想法吗 谢谢,似乎NSDocument被设置为所有文档窗口的代理,因此我的NSDocument子类中需要的钩子是: - (void) windowDidBecomeMain: (NSNotification *) notification { NSLog(@"windowDidBecomeMain:");
谢谢,似乎NSDocument被设置为所有文档窗口的代理,因此我的NSDocument子类中需要的钩子是:
- (void) windowDidBecomeMain: (NSNotification *) notification
{
NSLog(@"windowDidBecomeMain:");
}
- (void) windowDidResignMain: (NSNotification *) notification
{
NSLog(@"windowWillResign:");
}
- (void) windowWillClose: (NSNotification *) notification
{
NSLog(@"windowWillClose:");
}
上述解决方案不起作用,但确实起了作用: 我有一个窗口控制器(子类NSWindowController),我在窗口上添加了一个委托
-(void)windowDidLoad {
[super windowDidLoad];
self.window.delegate = self;
}
-(void)windowDidBecomeKey:(NSNotification *)notification {
// this gets called
}
定义为“与主窗口关联的文档对象。(只读)”。所以我认为这是正确的。只是一个注释。这似乎并不是总能抓住事件。例如,应用程序启动时最初聚焦的窗口不会触发事件。。。