iOS 将键盘背景更改为蓝色 (iOS13+)

iOS changes keyboard background to blue (iOS13+)

提问人:Elysium 提问时间:6/10/2022 最后编辑:Elysium 更新时间:6/20/2022 访问量:146

问:

从 iOS 13 开始,包括 iOS 14,我们的旧旧应用程序不知何故坏了:

keyboard bug

默认的 iOS 键盘是完全蓝色的 - If 在按下 shift 键时会自行修复,但如果您再次打开键盘,它会重新出现。UISearchBar 和 UITextField 会发生这种情况。

这是一个原生的 iOS 应用程序,没有任何 UI 框架或任何其他恶作剧。它是一个遗留应用程序,仍在使用 Storyboard,并且是很久以前构建的。

我尝试过:

  • 只需使用最新的 SDK 构建应用程序
  • 玩弄色调颜色,例如[[UINavigationBar appearance] setTintColor]
  • 外观设置、主题设置等,例如,[[UITextField appearance] setTintColor][[UITextField appearance] setKeyboardAppearance:UIKeyboardAppearanceLight]
  • 将主题锁定到浅色setOverrideUserInterfaceStyle: UIUserInterfaceStyleLight
  • 在 UISearchBar / UITextField 的情节提要属性中将键盘外观设置为“浅色”

似乎没有什么区别。我知道这是 iOS 的蓝色默认颜色,所以必须在某处设置并导致这种情况。

有谁知道是什么原因造成的以及如何解决这个问题?

该问题在模拟器和设备上都可见。它似乎打破了 iOS 14 的开头,并使用最新的 iOS 15 保持中断。

IOS的 Objective-C iPad的

评论

1赞 matt 6/13/2022
查找通过外观代理设置颜色的调用。键盘位于自己的窗口中,因此应用程序可能以某种方式错误地处理了窗口。我还建议出于调试目的需要 iOS 15,以便出现弃用并为您提供线索。

答:

-1赞 msusare 6/16/2022 #1
  • 检查最新开发中的所有外观更改。
  • 检查是否添加了任何新的第三方库来管理TextField上的键盘外观。
  • 尝试注释掉上述更改,以及是否将任何色调颜色应用于视图。这可能会解决您的问题。
0赞 Elysium 6/20/2022 #2

所以,在真正的绝望开始之后,我做了每个明智的程序员都会做的事情:我责怪其他人。我开始删除不是严格需要的陈旧/旧依赖项,并设法找到了罪魁祸首:

  • 是 Sentry SDK 导致了这个问题,这在某种程度上是有道理的,因为它们可能会深入收集用于错误记录的其他数据

移除 SDK 后,问题已解决。