启用和禁用通用窗口菜单命令

时间:2016-01-08 00:40:01

标签: objective-c cocoa nswindow nsmenuitem

当您让应用程序打开一个窗口(NSWindow)时,该窗口名称后面的命令会出现在Window menu下面,如下所示,其中一个命令指向主应用程序窗口,另一个指向打开的窗口。

enter image description here

如果我知道用户要显示的窗口的名称,我该如何启用和禁用该命令?我想以下情况不会起作用。

- (void)closeGenericWindow {
    NSString *windowName = NSLocalizedString(@"controlListWindow",@"");
    NSMenuItem *windowMenuItem = [[NSMenuItem alloc] initWithTitle:windowName action:nil keyEquivalent:@""];
    [windowMenuItem setEnabled:NO];
}

我正在搜索' [objective-c] [cocoa] disable window.'除了this topic之外,我找不到任何相关内容,这表明我在标题中创建了IBOutlet。但是在用户实际选择打开相关窗口之前,命令本身并不存在。

Muchos thankos

1 个答案:

答案 0 :(得分:1)

可能有几种方法:

  • 首先,您可以将窗口的excludedFromWindowsMenu属性设置为YES,以便从菜单中排除窗口。
  • 同样,没有title的窗口也不会显示在该菜单中。
  • 最后,您可以覆盖-canBecomeKeyWindow以返回NO,我认为应禁用该菜单。您可能需要替代或另外覆盖-canBecomeMainWindow