iphone - 以编程方式更改 UITextField 的占位符文本颜色

标签 iphone objective-c ios ipad uitextfield

我有一个带有占位符的 UITextField。当用户想要提交表单并且他/她没有在文本字段中输入任何内容时,我希望占位符的文本颜色变为红色。这是我的问题:

  • 这会违反 Apple 的用户界面指南吗?我不希望我的应用因为如此小的细节而被拒绝。
  • 我会怎么做?

我知道我可以在 UITextField 的子类中覆盖方法 drawPlaceholderInRect:。但如果我这样做,文本将始终为红色,正如我之前所写,我希望它根据用户定义的操作变为红色。

我能想到的唯一解决方案是为我的UITextField(占位符的文本)使用“默认”文本,只要用户没有输入任何内容就以浅灰色显示它,并且在我需要的时候显示为红色。换句话说,我只会 mock 占位符的行为。但当然,这不是很优雅。

有什么想法吗?

最佳答案

看看这个:

Digdog Dig - Change UITextField’s placeholder color without subclassing it

[self.MyTextField setValue:[UIColor darkGrayColor] forKeyPath:@"_placeholderLabel.textColor"];

关于iphone - 以编程方式更改 UITextField 的占位符文本颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7331604/

相关文章:

java - 如何将我的Java程序变成可以发送推送通知的 "app"?

ios - 委托(delegate)和方法没有理由不执行

ios - 如何在其他 ViewController 中继续下载数据

objective-c - Facebook 集成 iOS SDK(Facebook 连接)?

ios - swift - 在没有虚拟间隔 View 的情况下垂直居中多个 View

ios - 有没有办法将我的应用程序限制为 iPhone X 及更高版本?还是8及以上?

iphone - 如何根据日期对sqlite数据库进行排序?

iphone - CoreLocation 负值

ios - Xcode 单元测试返回没有 'private keyword' 的临时文件夹的 NSURL

iOS 应用程序启动后立即关闭