【问题标题】:Enabling and Disabling Generic Window Menu Command启用和禁用通用窗口菜单命令
【发布时间】:2016-01-08 00:40:00
【问题描述】:

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

如果我知道用户要显示的窗口的名称,我该如何启用和禁用该命令?我想以下是行不通的。

- (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。但在用户实际选择打开相关窗口之前,该命令本身并不存在。

非常感谢

【问题讨论】:

    标签: objective-c cocoa nswindow nsmenuitem


    【解决方案1】:

    可能有两种方法:

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

    【讨论】:

    • 是的,excludedFromWindowsMenu 属性有效。非常感谢。
    猜你喜欢
    • 2013-01-04
    • 1970-01-01
    • 1970-01-01
    • 2014-06-20
    • 2018-10-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-09-12
    相关资源
    最近更新 更多