【发布时间】:2014-04-29 19:06:31
【问题描述】:
我发现我可以通过更改包含在UITextField 中的标签的textColor 来设置占位符颜色。
[[UILabel appearanceWhenContainedIn:[UITextField class], nil] setTextColor:[UIColor lightGrayColor]];
但这也会改变UITextField 文本颜色。有没有办法将它们与UIAppearance分开指定?
我尝试使用setValue:forKey:,但后来我读到我的应用可能因使用 KVC 而被拒绝。
【问题讨论】:
-
改用
UITextField的attributedPlaceholder属性。 -
这很好但是必须在每个页面上正确设置一个函数?我在 appDelegate 中设置它,但我需要提供一个占位符字符串,它会覆盖我的占位符
-
是的,看看 UITextField 的构建方式,似乎没有办法通过外观选择器调整占位符颜色,这意味着您每次都必须这样做。在您的情况下,一个更简单的选择可能是子类化 UITextfield。然后,您可以通过覆盖初始化程序和其他适当的方法来执行您的标准自定义。
-
@Snymax 您可以在
UITextField上添加一个类别,以使用默认颜色设置attributedPlaceholder- 例如setDefaultStyledPlaceholder: -
Dima 我认为你是个天才谢谢你我不知道为什么我没想到
标签: ios uitextfield uiappearance