2010-11-07 109 views
2

我遇到了顯示主窗口的Cocoa應用程序(源代碼)。爲什麼我無法打開每個窗口的首選項?

只要這個窗口是關鍵,可以從主菜單以及通過撞擊命令 - ,但打開Preferences窗口當主窗口不是關鍵,並從同一應用程序的另一個窗口是,NSMenuItem是變灰和鍵盤快捷方式不響應。

我檢查了與主菜單相關聯的xib文件,並且NSMenuItem正在向FirstResponder發送IBAction,它應該是NSApplication。

我錯過了什麼(我仍然是mac可可編程的新手)?我該如何解決這個問題,以便可以從每個應用程序窗口訪問首選項?

回答

2

可能是原作者在某些情況下實施了- (BOOL)validateMenuItem:(NSMenuItem *)menuItem並返回NO

NSMenuValidationProtocoldocumentation

更新:另一個快速猜測:也許在打開第二個窗口後,處理菜單項IBAction的對象不再位於響應者鏈中。 NSMenuItems只有在動作選擇器可以在響應者鏈中找到時才能使用。

+0

我檢查了整個項目(文本),但它永遠不會被調用或實施。 – rano 2010-11-07 09:45:18

+0

用另一個想法更新了我的原始答案。 – 2010-11-07 11:29:25

+0

第二次猜測也是我的想法。可能作者在主窗口或其窗口控制器中實現了'openPreferences:',而不是更全局的東西。所以,任何時候主窗口(和它的WC,如果有的話)都不在響應者鏈中,它的任何內容都不會響應該動作,所以將發送該動作的任何菜單項都被禁用。 – 2010-11-07 15:34:10

相關問題