无法更改 iOS 7 搜索栏中的文本颜色

Posted

技术标签:

【中文标题】无法更改 iOS 7 搜索栏中的文本颜色【英文标题】:Unable to change text color in a search bar for iOS 7 【发布时间】:2013-11-03 21:01:27 【问题描述】:

我需要更改 UISearchBar 文本字段中的文本颜色。我在这篇文章中尝试了两个答案:

UISearchBar text color change in ios 7

但文本仍保持其默认的灰色。我在viewDidLoad 方法中设置了该代码。我能错过什么?有人遇到过同样的问题吗?

谢谢

【问题讨论】:

搜索栏默认的灰色文本不是文本域的文本,而是文本域的占位符。 @rmaddy 你说得对,我也设置了[[UILabel appearanceWhenContainedIn:[UISearchBar class], nil] setTextColor:[UIColor blueColor]];,它起作用了...是否也可以更改文本字段中小搜索图标的颜色? 您必须设置自己的图像。请参阅UISearchBar 文档。 如果问题有答案,请将答案以答案的形式添加,并标记为已接受答案。 【参考方案1】:
[[UITextField appearanceWhenContainedIn:[UISearchBar class], nil] setTextColor:[UIColor blueColor]];

//This is done in Xcode 5.0 and its working btw i don't know whether it works with previous versions of Xcode or not....
// Also I wrote this method in viewDidLoad

【讨论】:

【参考方案2】:
// Get the instance of the UITextField of the search bar
UITextField *searchField = [self.searchBar valueForKey:@"_searchField"];

// Change search bar text color
searchField.textColor = [UIColor blueColor];

【讨论】:

以这种方式访问​​私有实例变量超出了公共 API 的范围,因此不应使用。 Apple 不允许以这种方式访问​​私有 iVARS,这也可能导致您的应用被应用商店拒绝。

以上是关于无法更改 iOS 7 搜索栏中的文本颜色的主要内容,如果未能解决你的问题,请参考以下文章

无法在使用 UISearchController 实现的搜索栏中更改 TF 的背景颜色

更改标签栏中活动整个部分的颜色 - iOS 7

如何在iOS 7上更改状态栏背景颜色和文本颜色? Warif Akhand Rishi

如何使用主题和 Theme.AppCompat.DayNight 更改操作栏中的文本颜色

如何在 iOS 7 上更改状态栏背景颜色和文本颜色?

如何在 Ios 上更改状态栏文本颜色