cocoa – 删除WebView的NSUndoManager的撤消操作

我有几个WebView,我交换进出视图层次结构.其中一些WebView包含表单字段,因此我实现editingDelegate为我的文档提供NSUndoManager.

问题是在WebView中完成的任何键入操作都会生成放置在撤消堆栈上的操作.从层次结构中删除视图后,操作仍在撤消堆栈中.此时,如果用户使用Cmd-Z“撤消键入”,则会抛出异常,因为-undoEditing:正被发送到WebEditorUndoTarget的解除分配的实例. (WebKit实现中使用的私有类.)

我不能使用-removeAllActionsWithTarget:因为我无法引用目标.似乎唯一的解决方案是禁用WebView的撤消注册.

我错过了什么或者这是WebView的限制吗?

最佳答案 一个私有API解决方案是调用 – [WebView _clearUndoRedoOperations].尚未找到公共API解决方案.

点赞