2012-01-16 43 views
0

我有一個ManMenu.xib的可可應用程序,其中主菜單存儲在不同的xib中的其他子視圖處理我的應用程序的不同任務。那麼,如何讓我的子xibs或他們的NSViewControllerController從菜單中接收操作?我有一個想法,但我不知道是否是正確的方式:我子類化NSViewController並添加一些行動,如 - (IBAction)撤消或 - (IBAction)重做使用它的實例作爲文件的所有者。此外,我添加了一個指向我的應用程序委託的指針,指向實際視圖或其控制器,菜單將該操作發送到該指針。主菜單在不同的筆尖

明智的解決方案?

回答

0

您應該將菜單項連接到First Responder。他們的行動訊息將沿着響應者鏈傳播,直到他們到達響應他們的東西。

您需要確保您的視圖控制器位於響應者鏈中,方法是將其設置爲響應者鏈中其他響應者的下一個響應者。我會建議窗口控制器。如果說到窗口控制器,你可能應該在那裏處理undo,而不是在視圖控制器中 - 在同一個窗口中的不同視圖有不同的撤銷列表會讓人混淆。我能想到的唯一例外是受控視圖對應於文檔選項卡,如Photoshop或Xcode。