无论如何都要检测NSDocument的焦点/焦点?我想动态更新一个与活动文档有关的菜单项,但我看不到任何明显的方法。
原因是,我想激活然后填充文档焦点上的菜单,然后在失去焦点时取消填充和停用。
有什么想法吗?
谢谢,
答案 0 :(得分:4)
看来NSDocument被设置为所有文档窗口的委托,因此我的NSDocument子类中所需的钩子是:
- (void) windowDidBecomeMain: (NSNotification *) notification
{
NSLog(@"windowDidBecomeMain:");
}
- (void) windowDidResignMain: (NSNotification *) notification
{
NSLog(@"windowWillResign:");
}
- (void) windowWillClose: (NSNotification *) notification
{
NSLog(@"windowWillClose:");
}
答案 1 :(得分:1)
上述解决方案不起作用,它可以做到:
我有一个窗口控制器(子类为NSWindowController),并在窗口上添加了一个委托
-(void)windowDidLoad {
[super windowDidLoad];
self.window.delegate = self;
}
-(void)windowDidBecomeKey:(NSNotification *)notification {
// this gets called
}