UIWebView中的iOS文本输入字段在ARKit SceneKit中用作SCN材料,它不会显示键盘或成为第一响应者

UIWebView中的iOS文本输入字段在ARKit SceneKit中用作SCN材料,它不会显示键盘或成为第一响应者,ios,swift,uiwebview,scenekit,uikeyboard,Ios,Swift,Uiwebview,Scenekit,Uikeyboard,我在SceneKit中的平面上创建了一个web视图,如下所示: self.webView = ARWebView(frame: CGRect(x: 0, y: 0, width: 500, height: 500)) self.material_webPlane.diffuse.contents = self.webView let geom_webPlane = SCNPlane(width: 0.2, height: 0.2) geom_webPlane.materials = [mater

我在SceneKit中的平面上创建了一个web视图,如下所示:

self.webView = ARWebView(frame: CGRect(x: 0, y: 0, width: 500, height: 500))
self.material_webPlane.diffuse.contents = self.webView
let geom_webPlane = SCNPlane(width: 0.2, height: 0.2)
geom_webPlane.materials = [material_webPlane]
ARWebView是UIWebView的一个子类,只是为了覆盖canBecomeFirstResponder方法(试图解决问题但没有结果):

在用户触摸到web视图中的文本输入字段(例如google.com上的搜索栏)之前,一切正常。web视图有效地集中在搜索栏上,输入光标出现在搜索栏中,但屏幕上没有能够输入文本的键盘

我还运行了以下循环来检查窗口层次结构

for window: UIWindow in UIApplication.shared.windows {
    print("isKeyWindow:\(window.isKeyWindow) windowLevel:\(window.windowLevel) frame:\(NSStringFromCGRect(window.frame)) class:\(type(of: window).description())")
}
这将产生以下结果:

isKeyWindow:true windowLevel:0.0 frame:{{0, 0}, {1366, 1024}} class:UIWindow
isKeyWindow:false windowLevel:0.0 frame:{{0, 0}, {1366, 1024}} class:UIWindow
isKeyWindow:false windowLevel:10.0 frame:{{0, 0}, {1366, 1024}} class:UITextEffectsWindow
isKeyWindow:false windowLevel:10000.0 frame:{{0, 0}, {500, 500}} class:_SCNSnapshotWindow
这一切都在ARSCNView中,它本质上是一个SCNScene,在实际的iPhone/iPad设备iOS11上有一个实时摄像头。我更关心的是webview接收输入,而不是实际看到键盘视图(即即使用户必须使用无线键盘)

请问,是否有人知道如何让webview开始接收输入/如何让键盘正确显示?我做错了什么

更新1: 看起来UIWebView只是简单地拒绝成为第一个响应者。更深入地看,当UIWebView在更正常的设置中成为第一个响应者时,实际上是私有子视图UIWebBrowserView成为第一个响应者:

UIWebView
      > UIScrollView
             > UIWebBrowserView
也就是说,如果没有可能的应用程序拒绝,就不会有人碰它

更新2: 到目前为止,我的结论是,我的UIWebView是_SCNSnapshotWindow的后代,在我看来,它就像苹果将视图层次渲染到scenekit几何体上的方法。它可能必须以任意窗口的形式预先组成这个层次结构;单击_scnsnapshot窗口,然后将其映射到几何体上。结果是,_scnsnapshot窗口似乎不能成为关键窗口,这意味着它不能在响应程序链中运行


现在怎么办?为我的UIWebView实现自定义UIScrollView?贝勒?

嘿,伙计,这太有趣了。你认为你可以分享你的ARWebview课程吗?我很想玩玩它。
UIWebView
      > UIScrollView
             > UIWebBrowserView