我面臨一個奇怪的情況。我有一個NSMenu
與其中的子菜單。子菜單的內容以編程方式填充。在我的validateMenuItem:
方法中,我可以看到所有正在檢查的項目(父項目)以及子項目(一旦我點擊子菜單),除了我的自動填充子菜單中的項目。validateMenuItem:不叫
這是爲什麼?難道我做錯了什麼?任何想法如何解決這個問題?
我面臨一個奇怪的情況。我有一個NSMenu
與其中的子菜單。子菜單的內容以編程方式填充。在我的validateMenuItem:
方法中,我可以看到所有正在檢查的項目(父項目)以及子項目(一旦我點擊子菜單),除了我的自動填充子菜單中的項目。validateMenuItem:不叫
這是爲什麼?難道我做錯了什麼?任何想法如何解決這個問題?
下面是解:
可可查找在其中NSMenuItem
的動作選擇器是類的validateMenuItem:
方法。
因此,如果您NSMenuItem
的動作選擇(例如@selector(someSelector:)
)在SomeClass
實現,那麼請確保您有一個SomeClass
方法validateMenuItem:
也一樣,如果你想驗證相應的菜單項。
這些菜單項正常運行,否則(即當你選擇他們,他們觸發他們的行動方法)? – trojanfoe 2013-03-03 10:27:43
@trojanfoe剛剛找到了答案(很簡單,說實話...) - 我現在就發佈它。 – 2013-03-03 10:30:29
@trojanfoe所有菜單項的操作都是在控制器中實現的,而一個特定的子菜單的子項操作不是。因此,'validateMenuItem:'方法不被調用。 (令人沮喪的...因爲我在發帖前2小時還在努力掙扎(然後在10分鐘後自己回答...大聲笑)) – 2013-03-03 10:35:27