我有一个处理撤消和重做的视图。对于特定状态,我将第一响应者从视图更改为视图窗口。现在处于该状态,我希望窗口委托中的validateMenuItem:方法检查撤消菜单项。
当我关闭窗口时,这是有效的。但是当窗口可见时,其他响应者会处理撤消操作。
我的猜测是它是窗口控制器?但由于这是一个非基于文档的应用程序,我没有手动实现。我是否必须创建自定义窗口控制器?如果是这样,最简单的方法是什么?
答案 0 :(得分:2)
在这里找到答案:http://www.cocoabuilder.com/archive/cocoa/307917-validatemenuitem-not-called-for-undo-menu-item.html
使用动作'undo:'配置撤消菜单项告诉 这是 撤消菜单项的框架,因此它变为一个 在NSWindow中实现的标准撤销UI机制的元素。下 这些情况下,菜单项(尤其是其验证) 不是你的捣蛋。
如果你想自己实施整个机制,那么你 应该为撤消菜单项使用自定义操作,例如'myUndo:'。 这意味着,就框架而言,你的应用程序没有 (标准)撤消,动作/验证应该正常工作 方式。