显示模态窗口时禁用(灰显)主菜单?

时间:2011-01-25 09:41:13

标签: objective-c cocoa

我使用以下方法在我的Cocoa应用程序中加载自定义文件导入窗口

[NSApp runModalForWindow:window];

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

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

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

有人建议使用这个:

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

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

有人建议我在显示模态窗口时关闭主菜单(灰显菜单项)吗?

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

我必须在某处忽略这一点,因为这种菜单行为在Cocoa应用程序中很常见。

由于

达伦。

1 个答案:

答案 0 :(得分:3)

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

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

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

现在一切正常。