【问题标题】:Disable (grey out) main menu when displaying modal window?显示模式窗口时禁用(灰色)主菜单?
【发布时间】:2011-01-25 09:41:13
【问题描述】:

我在我的 Cocoa 应用程序中加载了一个自定义文件导入窗口:

[NSApp runModalForWindow:window];

窗口显示得很好,并且是模态的。

但是,应用程序主菜单仍处于活动状态(例如文件菜单和 items),这使得模态显示变得多余。

我用谷歌搜索过这个,搜索了 stackoverflow 和 cocoa-dev,并搜索了 Apple 文档,但找不到关闭菜单或至少选择的菜单项的方法。

有人建议使用这个:

NSModalSession session = [NSApp beginModalSessionForWindow:window];
[NSApp runModalSession];

但这似乎也不起作用。同样,窗口以模态方式显示,但主菜单仍处于活动状态。

谁能建议我在显示模式窗口时如何关闭主菜单(灰色菜单项)?

有没有办法在菜单级别一次性完成此操作,还是我需要关闭每个单独的菜单项?

我一定是在某个地方漏掉了重点,因为这种菜单行为在 Cocoa 应用程序中很常见。

谢谢

达伦。

【问题讨论】:

    标签: objective-c cocoa


    【解决方案1】:

    我需要(在 AppDelegate 中)实现以下方法:

    - (BOOL)validateUserInterfaceItem:(id <NSValidatedUserInterfaceItem>)anItem
    

    返回 NO 会禁用引用的菜单项。

    现在一切正常。

    【讨论】:

    • 你在哪里实现的?在应用程序委托中? (另外函数名有错别字)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-11-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-17
    相关资源
    最近更新 更多