WKWebView 不能通过键盘交互
Posted
技术标签:
【中文标题】WKWebView 不能通过键盘交互【英文标题】:WKWebView not interactive by keyboard 【发布时间】:2018-11-28 12:10:19 【问题描述】:总的来说,我是 swift 和苹果开发的新手(来自 JS 世界)。我正在尝试通过包装 WKWebView 来做一个简单的桌面应用程序。 ViewController 创建 webView 的部分工作正常。至少看起来是这样:它加载了一个网页:)
但是当我点击任何输入字段时,我无法写任何东西。字段中甚至看不到光标。
基本上只有通过鼠标/触摸板点击才有效。 但是当鼠标悬停在元素(例如按钮和文本字段)上时,鼠标光标不会改变。在我看来,网页上方有某种蒙版/图层。点击会传播到页面本身,但不会传播到悬停和击键
应用程序中是否有任何特殊的项目设置/权限启用键盘? 如何使页面输入可编辑?
更多细节:
单击文本字段有效(它会根据焦点选择器更改边框颜色) 点击 webview 中的<a>
链接有效
鼠标右键似乎可以工作(它显示复制/粘贴选项等)
通过鼠标右键单击粘贴到现场作品中
代码:
import Cocoa
import SafariServices.SFSafariApplication
import WebKit
class ViewController: NSViewController, WKNavigationDelegate
@IBOutlet var ww: WKWebView!
override func viewDidLoad()
super.viewDidLoad()
ww.navigationDelegate = self
ww.load(URLRequest(url: URL(string: "https://www.google.com")!))
view = ww
我的故事板:
Ww
是 WebKit 视图
Ww
覆盖所有View
区域(鼠标拖放)
感谢您的任何回答或提示! ????
【问题讨论】:
【参考方案1】:您的原始代码对我有用。您需要禁用沙盒功能:
禁用此功能后,我可以加载 webview 并与之交互。
【讨论】:
感谢您的回复。不幸的是,它对我不起作用:(你的故事板是什么样的? 对不起,我错过了 NSViewController -> UIViewController 交换。请问有什么区别?我的 xcode 也报告:Type 'ViewController' does not conform to protocol 'NSObjectProtocol'
当我尝试更改时
好的,我发现 UIViewController 是用于 ios 应用程序的。我在我的问题中说我正在寻找桌面应用程序解决方案,我相信这是关于 NSViewController 的。还是谢谢以上是关于WKWebView 不能通过键盘交互的主要内容,如果未能解决你的问题,请参考以下文章
WKWebView的evaluateJavascript方法的completionHandler运行在啥线程上?
带有 WKWebView 单元格的滚动 UICollectionView 的 UITableView
在 iOS 9 中遇到 WKWebview 和 UIWebView 问题
swift 笔记:iOS与JavaScript的交互(三):WKWebView 3. WKUiDelegate - 4 - 2通过WKConfig引入脚本: