我在主應用程序菜單中有一個菜單項,我想將其操作路由到視圖控制器(NSViewController
)。界面層次結構如下所示:有一個由NSWindowController
組成的主應用程序窗口控制器。窗口內部有分割視圖,分割視圖中的右側視圖由NSViewController
控制。如何將菜單動作路由到窗口內的NSViewController?
Window + NSWindowController
`-- NSSplitView
`-- NSView
`-- NSView + NSViewController
菜單項連接到Interface Builder中的First Responder。所討論的視圖控制器實現了適當的方法,但菜單項保持禁用狀態。當我將該方法移動到NSWindowController
時,菜單項被啓用。
我想我需要將視圖控制器鏈接到響應鏈,所以我將其設置爲窗口控制器的nextResponder
;沒有雪茄。我究竟做錯了什麼?
您可以在IB中添加一個對象,代表您的Controller。然後將菜單操作鏈接到控制器的IBAction。 – 2012-07-12 14:17:28
不幸的是,這是不可能的,視圖控制器根據在左側分割視圖窗格中選擇的內容而改變。 – zoul 2012-07-12 14:19:14
然後,每次視圖獲得焦點時,必須重新分配菜單操作。要訪問te菜單:[[[[[NSApp mainMenu] itemWithTitle:@「ItemName」] menu] itemWithTitle @「ItemName] setAction:@」Selector(theSelector)] – 2012-07-12 14:25:38