2011-01-25 48 views
3

我用我的可可應用程序加載自定義文件導入窗口:顯示模態窗口時禁用(灰顯)主菜單嗎?

[NSApp runModalForWindow:window];

該窗口顯示蠻好的,是模態。

但是,應用程序主菜單仍處於活動狀態(例如文件菜單和 項目),這會使模式顯示變得冗餘。

我搜索了這個,搜索了stackoverflow和cocoa-dev,並搜索了Apple文檔,但找不到方法來關閉菜單或至少選定菜單項。使用這種

有人建議:

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

但這似乎並沒有任何工作。再次,窗口以模態方式顯示,但主菜單仍處於活動狀態。

任何人都可以建議如何顯示模式窗口時,我關閉主菜單(灰色菜單項)?

有沒有辦法在菜單級一次執行此操作,還是需要關閉每個單獨的菜單項?

我必須錯過某處,因爲這種菜單行爲在Cocoa應用程序中很常見。

謝謝

Darren。

回答

3

我需要實現(在AppDelegate中)以下方法:

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

返回NO禁用引用菜單項。

現在所有的工作都很好。

+0

你在哪裏執行此操作?在應用程序委託? (功能名稱也有拼寫錯誤) – Geesu 2015-12-06 20:25:29