键盘在 Web 视图中未正确显示 - 横向模式
Posted
技术标签:
【中文标题】键盘在 Web 视图中未正确显示 - 横向模式【英文标题】:Keyboard in not appearing correctly in web view - Landscape mode 【发布时间】:2019-03-07 07:31:13 【问题描述】:我正在展示这样的自定义 Web 视图。
let vc = CustomWebViewVC.viewController()
vc.delegate = self
present(vc, animated: true, completion: nil)
我已实现此功能以在横向模式下显示自定义 Web 视图。
override var preferredInterfaceOrientationForPresentation: UIInterfaceOrientation
return .landscapeRight
//----------------------------------------------------------
override var shouldAutorotate: Bool
return false
问题
CustomWebViewVC 在横向模式下正确打开,但是当我点击 webivew 内的文本字段时会发生这种情况。
我不知道是什么问题。
有什么建议吗?
【问题讨论】:
你在真机上测试过吗? 这是真机截图 尝试任何其他网站,例如 FB。检查是否出现相同的问题。可能是网页问题 我在设备的 safari 中尝试过初始化没有问题 设备 safari 中的相同 url 工作正常,键盘显示正确 【参考方案1】:缺少的方法是这个
override var supportedInterfaceOrientations: UIInterfaceOrientationMask
return UIInterfaceOrientationMask.landscapeRight
在视图控制器中添加这个之后就成功了。
要在横向模式下打开视图控制器,您需要像我一样实现所有三个方法。
override var preferredInterfaceOrientationForPresentation: UIInterfaceOrientation
return .landscapeRight
//----------------------------------------------------------
override var shouldAutorotate: Bool
return false
override var supportedInterfaceOrientations: UIInterfaceOrientationMask
return UIInterfaceOrientationMask.landscapeRight
【讨论】:
【参考方案2】:在viewDidLoad
中添加以下代码
斯威夫特 4
let value = UIInterfaceOrientation.landscapeLeft.rawValue
UIDevice.current.setValue(value, forKey: "orientation")
【讨论】:
以上是关于键盘在 Web 视图中未正确显示 - 横向模式的主要内容,如果未能解决你的问题,请参考以下文章