我使用以下方法在我的 Cocoa 应用程序中加载自定义文件导入窗口:
[NSApp runModalForWindow:window];
窗口显示得很好,并且是模态的。
但是,应用程序主菜单仍然处于事件状态(例如文件菜单和 项目),这使得模态显示变得多余。
我用谷歌搜索了这个,搜索了 stackoverflow 和 cocoa-dev,并搜索了 Apple 文档,但找不到关闭菜单的方法,或者至少找不到选定的菜单项。
有人建议使用这个:
NSModalSession session = [NSApp beginModalSessionForWindow:window];
[NSApp runModalSession];
但这似乎也不起作用。同样,窗口以模态方式显示,但主菜单仍处于事件状态。
谁能建议我在显示模态窗口时如何关闭主菜单(灰色菜单项)?
有没有一种方法可以在菜单级别一次完成此操作,或者我是否需要关闭每个单独的菜单项?
我一定是漏掉了重点,因为这种菜单行为在 Cocoa 应用程序中很常见。
谢谢
达伦。
最佳答案
我需要(在 AppDelegate 中)实现以下方法:
- (BOOL)validateUserInterfaceItem:(id <NSValidatedUserInterfaceItem>)anItem
返回 NO 会禁用引用的菜单项。
现在一切正常。
关于objective-c - 显示模态窗口时禁用(灰色)主菜单?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4791890/