什么响应者捕获撤消行动?

时间:2013-02-26 08:15:31

标签: cocoa nswindowcontroller nsundomanager

我有一个处理撤消和重做的视图。对于特定状态,我将第一响应者从视图更改为视图窗口。现在处于该状态,我希望窗口委托中的validateMenuItem:方法检查撤消菜单项。

当我关闭窗口时,这是有效的。但是当窗口可见时,其他响应者会处理撤消操作。

我的猜测是它是窗口控制器?但由于这是一个非基于文档的应用程序,我没有手动实现。我是否必须创建自定义窗口控制器?如果是这样,最简单的方法是什么?

1 个答案:

答案 0 :(得分:2)

在这里找到答案:http://www.cocoabuilder.com/archive/cocoa/307917-validatemenuitem-not-called-for-undo-menu-item.html

  

使用动作'undo:'配置撤消菜单项告诉   这是 撤消菜单项的框架,因此它变为一个   在NSWindow中实现的标准撤销UI机制的元素。下   这些情况下,菜单项(尤其是其验证)   不是你的捣蛋。

     

如果你想自己实施整个机制,那么你   应该为撤消菜单项使用自定义操作,例如'myUndo:'。   这意味着,就框架而言,你的应用程序没有   (标准)撤消,动作/验证应该正常工作   方式。