2012-01-16 46 views
0

我有一个ManMenu.xib的可可应用程序,其中主菜单存储在不同的xib中的其他子视图处理我的应用程序的不同任务。那么,如何让我的子xibs或他们的NSViewControllerController从菜单中接收操作?我有一个想法,但我不知道是否是正确的方式:我子类化NSViewController并添加一些行动,如 - (IBAction)撤消或 - (IBAction)重做使用它的实例作为文件的所有者。此外,我添加了一个指向我的应用程序委托的指针,指向实际视图或其控制器,菜单将该操作发送到该指针。主菜单在不同的笔尖

明智的解决方案?

回答

0

您应该将菜单项连接到First Responder。他们的行动讯息将沿着响应者链传播,直到他们到达响应他们的东西。

您需要确保您的视图控制器位于响应者链中,方法是将其设置为响应者链中其他响应者的下一个响应者。我会建议窗口控制器。如果说到窗口控制器,你可能应该在那里处理undo,而不是在视图控制器中 - 在同一个窗口中的不同视图有不同的撤销列表会让人混淆。我能想到的唯一例外是受控视图对应于文档选项卡,如Photoshop或Xcode。