gpt4 book ai didi

objective-c - 激活 WebView 键盘事件

转载 作者:搜寻专家 更新时间:2023-10-30 20:11:23 25 4
gpt4 key购买 nike

我在一个简单/普通的 NSWindow 中有一个 webview。

当我在 WebView 中加载一个 url,如“http://google.com”时,我无法与选择所有字符 (cmd+a)、剪切/粘贴 (cmd+cv) 等的文本字段进行交互。

如何激活默认的浏览器行为?我的 mac 改为发出经典的 NSBeep()。

我尝试添加一个 UIDelegate 至极调用

- (BOOL)webView:(WebView *)webView shouldPerformAction:(SEL)action fromSender:(id)sender`

但从未调用该操作。

最佳答案

您必须继承 WebView 或 View 层次结构中上方的任何 View ,其中您的 WebView 是 subview 并覆盖 NSView 的 NSResponder 方法;特别是 acceptFirstResponder: 和 canBecomeFirstResponder:。然后实现 keyUp: 或 keyDown: 或您感兴趣的 NSResponder 的任何事件方法。

这至少应该省略 NSBeep。

为了更深入地拦截 WebView 内部的事件(用于剪切/粘贴/等),WebView 本身也提供了几个方法来覆盖,但我认为必须采取额外的步骤来相应地拦截事件。抱歉,这里含糊不清。

您提到的 webView:shouldPerformAction:fromSender 不是您期望的那样。 WebUIDelegate Protocol表示此方法“返回一个 bool 值,指示是否应执行指定对象发送的操作。” - 但 WebUIDelegationProtocol 方法只会被“作为处理 JavaScript 或其他插件内容的结果调用”。这意味着 shouldPerformAction: 只有在网站本身(JS 或插件)触发时才会被调用,而不是在 NSResponder 事件发生时被调用。

关于objective-c - 激活 WebView 键盘事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7471865/

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