键盘在 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 视图中未正确显示 - 横向模式的主要内容,如果未能解决你的问题,请参考以下文章

滚动条在 IOS APP 中未以横向模式显示

iPhone SDK:TextView,横向模式下的键盘

IOS Customkeyboard在横向模式下大小错误

如何将视图从纵向模式旋转到横向模式

iPad 横向模式视图大小不正确

在 iPhone 中,键盘以纵向模式出现,而不是横向模式。有啥解决办法吗?