如何设置UISearchBar占位符的文本颜色

我有一个深色背景颜色的UISearchBar所以我试图改变UISearchBar的占位符文本颜色(默认情况下它是灰色的)但我没有找到设置它的方法。 所以我想得到一些帮助:)请建议我如何实现这一点,提前谢谢:)

注意 :当我写这个答案时,我正在使用iOS 7,这个解决方法也适用于iOS 8。 它可能无法在iOS 9上运行

好吧,我发布这个问题已经两天了。 虽然我得不到答案,但我得到了解决这个问题的方法。

注意:我正在为我的应用程序使用storyboard并且我已经将UISearchBar子类化了,这个解决方法对我而言就像一个gem。

首先,当它包含在UISearch bar类中时,为UILabel添加一个外观代理,如下所示:

[[UILabel appearanceWhenContainedIn:[UISearchBar class], nil] setTextColor:[UIColor whiteColor]];//change the color to whichever color needed 

那么最重要的是如果你正在使用故事板,你必须并且应该在属性检查器的占位符字段中写一些文本,就像这样

如果你忘记在占位符字段中写一些东西,那么当你运行应用程序时,这个技巧肯定不起作用,占位符文本将以通常的灰色显示。

完成在占位符字段中编写一些文本后,在UISearchBar子类中设置占位符文本,如下所示:

 self.placeholder = @"My Placeholder text"; 

现在运行应用程序! 你将获得你在appdelegate中设置的颜色的占位符文本:)希望这有助于某人:)

这是解决方案

 [searchBar setValue:[UIColor blueColor] forKeyPath:@"_searchField.textColor"];