我更改了我的Print菜单项,将-printWindow:消息发送给First Responder,并在我的两个窗口控制器(我的主窗口和辅助窗口)上定义了该方法。在我的主窗口,一切正常。但是,当我关注第二个窗口时,将自动禁用“打印”菜单项。
@interface SecondaryWindowController : NSWindowController {
}
- (IBAction) printWindow:(id)sender;
我的实施:
- (IBAction) printWindow:(id)sender {
NSLog(@"called print:%@", sender);
}
如果我理解菜单项的自动验证,它应该爬上第一个响应者层次结构,寻找响应所选选择器的对象...应该是我的SecondaryWindowController,但菜单项被禁用。知道我做错了吗?
答案 0 :(得分:2)
事实证明我需要将窗口的委托出口连接到文件所有者(我的窗口控制器)。然后菜单能够正确自动无效并启用菜单项。