2010-11-10 27 views

回答

2

- (BOOL)validateMenuItem:(NSMenuItem *)菜單項

docs一些細節。

更新:如果validateMenuItem:回報NO
NSMenus不隱瞞NSMenuItems。相應的NSMenuItem被禁用(它告訴用戶功能在那裏,但目前不適用)。
此行爲也在Apple's HIG中建議。 (參見「命名菜單項」部分第二段)

兩個約NSMenuItem的enabled狀態其他注意事項:

  • setEnabled僅在託管NSMenu的autoenablesItems:設置爲YES
  • 默認工作validateMenuItem:的實現似乎遍歷響應者鏈來檢查NSMenuItem的目標/動作是否可用。
+0

你是正確的,但我有一個上下文菜單,我想只顯示有效的「語境」的項目,而不必菜單項打,只有一對夫婦啓用 – dafi 2010-11-10 16:46:05

0

您可以使用 - (BOOL)validateMenuItem:在不需要時刪除菜單項並在需要時插入它。

Menu documentation

+0

中調用setHidden內validateMenuItem沒有按」 t隱藏菜單,我不明白爲什麼 – dafi 2010-11-10 15:04:40

+0

你嘗試從其他地方調用setHidden嗎?我在我的一個項目中使用它(也用於上下文菜單),它在那裏的作用就像一個魅力。也許有些微不足道(Outlet沒有連接?) – 2010-11-10 20:51:18