【问题标题】:ios13 switching between light/dark mode not reflected on displayed keyboard with inputAccessoryView initiallyios13在亮/暗模式之间切换最初没有反映在带有inputAccessoryView的显示键盘上
【发布时间】:2020-02-25 06:46:54
【问题描述】:

在使用 iOS 13 在明暗模式之间切换时,我遇到了键盘显示的异常行为。

视图有一个 inputAccessoryView 供用户输入消息。然后在键盘显示时切换明暗模式时,明暗模式不会反映在键盘上,直到键盘被隐藏并再次显示。最初这是我在暗模式和亮模式之间切换时看到的:

关闭键盘并再次显示颜色正常。这只发生在带有 inputAccessoryView 的键盘上。当仅使用 inputAccessoryView 更改模式时,没有显示 inputAccessoryView 颜色的键盘会按预期更改。

【问题讨论】:

  • 如果您认为这是一个错误,请向 Apple 提交错误报告。包括一个简单的测试应用程序,该应用程序通过明确的说明来演示问题,以重现问题。
  • 我创建了一个具有相同问题的简单示例项目并提交了一个错误。我会在这里更新回复。
  • 您好,这个 bug 怎么样了?我在 xcode 11.4 beta 2 中对空示例应用程序进行了同样的尝试,但这种不良行为仍然存在。
  • 我已经提交了一个错误报告,但没有回复,也没有我知道的修复

标签: ios13 inputaccessoryview ios-darkmode


【解决方案1】:

我也遇到过。我的解决方案是当颜色外观发生变化时,在 inputAccessoryView 中的 UITextView 上 resignFirstResponder 。不理想,但可以解决问题。

(我必须覆盖 messageInputAccessoryView 中的 resignFirstResponder 以在 textView 上 resignFirstResponder)

override func traitCollectionDidChange(_ previousTraitCollection: UITraitCollection?) {
    super.traitCollectionDidChange(previousTraitCollection)

    if #available(iOS 13.0, *) {
      if self.traitCollection.hasDifferentColorAppearance(comparedTo: previousTraitCollection) {
        _ = messageInputAccessoryView.resignFirstResponder()
      }
    }
  }

【讨论】:

    猜你喜欢
    • 2020-05-10
    • 2020-08-24
    • 2020-10-20
    • 2021-09-12
    • 2021-05-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-03-05
    相关资源
    最近更新 更多