gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-03 16:15:07 26 4
gpt4 key购买 nike

我有几个 WebView,可以在 View 层次结构中换入和换出。其中一些 WebView 包含表单字段,因此我实现 EditingDelegate 来为我的文档提供 NSUndoManager。

问题在于,在 WebView 中完成的任何键入都会生成放置在撤消堆栈上的操作。从层次结构中删除 View 后,操作仍位于撤消堆栈中。此时,如果用户使用 Cmd-Z 来“撤消键入”,则会引发异常,因为 -undoEditing: 被发送到 WebEditorUndoTarget 的已释放实例。 (WebKit 实现中使用的私有(private)类。)

我无法使用 -removeAllActionsWithTarget: 因为我无法引用目标。看来唯一的解决方案是禁用 WebView 的撤消注册。

我错过了什么还是这是 WebView 的限制?

最佳答案

一种私有(private) API 解决方案是调用 -[WebView _clearUndoRedoOperations]。尚未找到公共(public) API 解决方案。

关于cocoa - 删除 WebView 的 NSUndoManager 的撤消操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8319146/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com