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

cocoa – 删除WebView的NSUndoManager的撤消 *** 作,第1张

概述我有几个WebView,我交换进出视图层次结构.其中一些WebView包含表单字段,因此我实现editingDelegate为我的文档提供NSUndoManager. 问题是在WebView中完成的任何键入 *** 作都会生成放置在撤消堆栈上的 *** 作.从层次结构中删除视图后, *** 作仍在撤消堆栈中.此时,如果用户使用Cmd-Z“撤消键入”,则会抛出异常,因为-undoEditing:正被发送到WebEditor 我有几个WebVIEw,我交换进出视图层次结构.其中一些WebVIEw包含表单字段,因此我实现editingDelegate为我的文档提供NSUndoManager.

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

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

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

解决方法 一个私有API解决方案是调用 – [WebVIEw _clearUndoRedoOperations].尚未找到公共API解决方案. 总结

以上是内存溢出为你收集整理的cocoa – 删除WebView的NSUndoManager的撤消 *** 作全部内容,希望文章能够帮你解决cocoa – 删除WebView的NSUndoManager的撤消 *** 作所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/1072297.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-26
下一篇 2022-05-26

发表评论

登录后才能评论

评论列表(0条)

保存