Webview 的自定义“撤消”

Posted

技术标签:

【中文标题】Webview 的自定义“撤消”【英文标题】:Custom "undo" for Webview 【发布时间】:2014-12-17 09:23:26 【问题描述】:

好的,情况就是这样。我有:

一个Webview 很多NSTextFields 其他不相关的控件

通常,Edit > Undo 菜单项链接到 First Responder 的 undo: 操作。一切正常 + 您甚至可以在输入 NSTextField 时“撤消”。

现在,如果我想以不同的方式处理这个“撤消”操作怎么办,只针对我的 WebView。

我一直在考虑两种方法:

将“撤消”项链接到自定义操作并检查谁是第一响应者。如果是 Webview,那么做需要做的事情。否则,将事件“传递”给控件。 (但是,当尝试 [FIRST_RESPONDER performSelector:@selector(undo:)] 时,首先它似乎无法识别选择器,最后但并非最不重要的一点是没有任何反应。)

将“撤消”链接到第一响应者的undo:(像往常一样),将Webview 子类化并添加自定义- (void)undo:(id)sender 操作。但是在这种情况下,当 webview 处于活动状态时,“撤消”项是灰色的,所以我什么都做不了,甚至不检查是否会调用自定义方法。


建议?你会怎么做呢?

我错过了什么?

【问题讨论】:

【参考方案1】:

我想这就是答案:https://developer.apple.com/library/mac/documentation/Cocoa/Reference/WebKit/Protocols/WebEditingDelegate_Protocol/

另请参考:Removing undo actions for a WebView's NSUndoManager

【讨论】:

以上是关于Webview 的自定义“撤消”的主要内容,如果未能解决你的问题,请参考以下文章

(源码)解决Android的WebView加载失败(404,500),显示的自定义视图

在 Next JS 中,Material UI makeStyles 在刷新时撤消自定义 css

自定义 Webview 上的 ClassCastException

Drupal 视图模块卡在我的自定义主题上

检测 iOS 13 撤消和重做

添加自定义android webview错误页面