0

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

我想有一个不同颜色的“用户名”,比如灰色。可能吗?

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

4

4 回答 4

2

不能直接使用 UITextField 完成。您的两个基本选项是:

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

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

于 2012-04-04T09:12:29.380 回答
0

不,使用默认设置是不可能的。

于 2012-04-04T08:49:10.140 回答
0

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

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

还有另一种方法可以做到这一点,您可以使用自定义实现覆盖 drawPlaceholderInRect 方法。

于 2012-04-04T08:52:32.510 回答
0

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
于 2022-03-03T10:37:05.537 回答