更新到 iOS 13 后 UISearchController UITextField 背景不显示白色

Posted

技术标签:

【中文标题】更新到 iOS 13 后 UISearchController UITextField 背景不显示白色【英文标题】:UISearchController UITextField background not showing white after update to iOS 13 【发布时间】:2019-10-09 18:35:15 【问题描述】:

在新的更新之后,我注意到我的UISearchController 不像以前那样了。

首先,UITextField 不再有白色背景。我试图弄清楚为什么会这样,但没有运气。这就是我创建它的方式。

var resultsSearchController = UISearchController(searchResultsController: nil)

self.resultsSearchController.delegate = self
let searchBar = self.resultsSearchController.searchBar

self.resultsSearchController.searchResultsUpdater = self
self.resultsSearchController.obscuresBackgroundDuringPresentation = false
self.resultsSearchController.extendedLayoutIncludesOpaqueBars = true

searchBar.sizeToFit()
self.tableView.tableHeaderView = searchBar
searchBar.placeholder = "Catalog Search"
searchBar.barTintColor = UIColor.darkAqua

据我所知,默认 UITextField 默认外观似乎已经改变,这是我的猜测。

只是想知道如果可能的话如何将它改回来。

---编辑--- 我尝试按照建议进行操作并将此代码添加到viewDidLoad()

if #available(ios 13.0, *) 
    overrideUserInterfaceStyle = UIUserInterfaceStyle.light
 else 
    // Fallback on earlier versions

以及将此添加到UISearchController 代码

if #available(iOS 13.0, *) 
    self.resultsSearchController.overrideUserInterfaceStyle = UIUserInterfaceStyle.light
 else 
    // Fallback on earlier versions

这两个代码的组合都无法更改它,以便 UITextField 按预期显示。

【问题讨论】:

【参考方案1】:

好吧,原来我很笨。我试图为自己做这件事要容易得多。 我最终所做的只是访问搜索栏中的UITextField 以获取UISearchController

添加这个:

searchBar.searchTextField.backgroundColor = UIColor.white

使用我已经拥有的代码似乎让它看起来又正常了。

【讨论】:

以上是关于更新到 iOS 13 后 UISearchController UITextField 背景不显示白色的主要内容,如果未能解决你的问题,请参考以下文章

更新到 Xcode 13 后出现错误破坏了应用程序

iOS 13.6 第三个预览版

用户登录后更新根视图控制器 + iOS 13 及更高版本

最初打开 iOS13+ 应用程序后更新/更改根视图控制器

更新 xcode 13 后 react-native run-ios 命令未成功运行

iOS 13突然更新,竟是为这个大招提前做准备?