在 iOS 9+ 中更改 UISearchBar 文本颜色
Posted
技术标签:
【中文标题】在 iOS 9+ 中更改 UISearchBar 文本颜色【英文标题】:Change UISearchBar text color in iOS 9+ 【发布时间】:2015-10-28 12:11:27 【问题描述】:在 ios 7.x 中我们可以使用
[[UITextField appearanceWhenContainedIn:[UISearchBar class], nil]
setDefaultTextAttributes:@NSForegroundColorAttributeName:myColor];
但它在 iOS 9 中已被弃用。我知道的唯一解决方案是遍历 UISearchBar
的子视图层次结构,查找 UITextField
并更改其属性。但是这种方式被认为是Private API Usage
我们是否有合法方法来更改 iOS 9.x 中的 UISearchBar 文本颜色?
【问题讨论】:
不推荐使用它并不意味着您不能使用它(如果您对警告感到恼火,请参阅***.com/a/4133201/4062250)。 根本没有这种方法,至少在Swift中UIAppearance
协议不包含这种方法:gist.github.com/OgreSwamp/d554536d8f747d618483
没想到...也许这会有所帮助:***.com/questions/24136874/…
迭代子视图层次结构根本不使用私有 API。你这样做是安全的。唯一的问题是层次结构可以随时更改。
【参考方案1】:
你现在需要使用 appearanceWhenContainedInInstancesOfClasses:
例如:
[[UITextField appearanceWhenContainedInInstancesOfClasses:@[[UISearchBar class]]] setTextColor:[UIColor whiteColor]];
【讨论】:
以上是关于在 iOS 9+ 中更改 UISearchBar 文本颜色的主要内容,如果未能解决你的问题,请参考以下文章
在 iOS 8 中更改 UISearchBar 取消按钮文本
如何在iOS7中更改UISearchBar的取消按钮的textColor?
如何在 iOS7 中更改 UISearchBar 的 inputView?