UITextField内的两种不同颜色

时间:2012-04-04 08:48:00

标签: iphone ios uitextfield

我有一个UITextField,其初始文本是“username.mysite.com”。设置默认颜色(黑色)。

我希望“用户名”的颜色与灰色不同。有可能吗?

用户可以点击“清除按钮”,而占位符是“url”。

3 个答案:

答案 0 :(得分:2)

无法直接使用UITextField。您的基本两个选项是:

  1. 使用UIWebView伪装作为文本字段。这很容易,但它是一把大锤,在某些使用案例中可能会导致性能损失。

  2. 使用Core Text显示正确配置的NSAttributedString。虽然该链接似乎适用于Mac OS,但Core Text也存在。该框架非常强大,但具有陡峭的学习曲线,并且不支持开箱即用的可编辑文本。但是,有各种开源库可能有助于入门(例如DTCoreTextOHAttributedLabel)。

答案 1 :(得分:0)

不,默认设置无法实现。

答案 2 :(得分:0)

您可以更改占位符的颜色,通过访问以下私有属性,它会向您显示警告,但它将会很好地工作。

[aTextField setValue:[UIColor yellowColor] 
            forKeyPath:@"_placeholderLabel.textColor"];

还有另一种方法可以执行此操作,您可以使用自定义实现覆盖drawPlaceholderInRect方法。