我有一个 UITextField,其中初始文本是“username.mysite.com”。设置默认颜色(黑色)。
我想有一个不同颜色的“用户名”,比如灰色。可能吗?
用户可以点击“清除按钮”,占位符为“url”。
我有一个 UITextField,其中初始文本是“username.mysite.com”。设置默认颜色(黑色)。
我想有一个不同颜色的“用户名”,比如灰色。可能吗?
用户可以点击“清除按钮”,占位符为“url”。
不能直接使用 UITextField 完成。您的两个基本选项是:
使用UIWebView
伪装作为文本字段。这很容易,但它是一把大锤,在某些用例中可能会导致性能损失。
使用Core Text显示一个适当配置的 NSAttributedString。尽管该链接似乎适用于 Mac OS,但 iOS 上也存在 Core Text。该框架非常强大,但学习曲线陡峭,并且不支持开箱即用的可编辑文本。但是,有各种开源库可能有助于入门(例如DTCoreText . OHAttributedLabel)。
不,使用默认设置是不可能的。
您可以更改占位符的颜色,通过访问以下私有属性,它会向您显示警告,但它会很好地工作。
[aTextField setValue:[UIColor yellowColor]
forKeyPath:@"_placeholderLabel.textColor"];
还有另一种方法可以做到这一点,您可以使用自定义实现覆盖 drawPlaceholderInRect 方法。
UITextField
有一个attributedText
属性,可以设置为任何NSAttributedString
你喜欢的颜色。例如:
// Create a string:
let attribString = NSMutableAttributedString(string: "username.mysite.com")
// Set the grey color to the "username" portion of the string (the black color is the default for the rest):
attribString.addAttribute(.foregroundColor, value: UIColor.gray, range: NSRange(location: 0, length: 8))
// Set the attributed string to your text field:
textField.attributedText = attribString