各种NSWindowControllers的打印菜单项启用/禁用

时间:2011-10-07 02:19:25

标签: xcode cocoa validation nsmenu

我更改了我的Print菜单项,将-printWindow:消息发送给First Responder,并在我的两个窗口控制器(我的主窗口和辅助窗口)上定义了该方法。在我的主窗口,一切正常。但是,当我关注第二个窗口时,将自动禁用“打印”菜单项。

@interface SecondaryWindowController : NSWindowController {

}

- (IBAction) printWindow:(id)sender;

我的实施:

- (IBAction) printWindow:(id)sender {
    NSLog(@"called print:%@", sender);
}

如果我理解菜单项的自动验证,它应该爬上第一个响应者层次结构,寻找响应所选选择器的对象...应该是我的SecondaryWindowController,但菜单项被禁用。知道我做错了吗?

1 个答案:

答案 0 :(得分:2)

事实证明我需要将窗口的委托出口连接到文件所有者(我的窗口控制器)。然后菜单能够正确自动无效并启用菜单项。