Mimick UITextField占位符颜色的正确方法

时间:2018-10-31 09:35:31

标签: ios swift uitextfield

我还有一个对象,希望具有与UITextField的默认占位符文本颜色相同的颜色。

我知道我可以简单地用相同的颜色创建一个新的UIColor,但是如果Apple更改默认的UITextField颜色,这似乎很麻烦并且存在问题。相反,我正在寻找访问UITextField颜色的正确方法,以便可以将另一个字段设置为相同的颜色?

谢谢。

2 个答案:

答案 0 :(得分:0)

UITextField中的UIKit API中,UITextField的占位符颜色为70% of gray color,由iOS SDK定义。

open var placeholder: String? // default is nil. string is drawn 70% gray

来自Apple文档

  

占位符字符串是使用系统定义的颜色绘制的。

可能无法使用iOS SDK中提供的具有任何属性的这些系统定义的颜色。

答案 1 :(得分:0)

尝试一下:-

@IBOutlet weak var textField: UITextField!

现在在viewDidLoad方法中:-

let placeHolederText = "PlaceHolder"
let attributedPlaceHolder = NSAttributedString(string: placeHolederText, attributes: [NSAttributedString.Key.foregroundColor : UIColor.red ,NSAttributedString.Key.font : UIFont.systemFont(ofSize: 12) ])
self.textField.attributedPlaceholder = attributedPlaceHolder
self.textField.borderStyle = .bezel
self.textField.tintColor = .gray

结果:-

enter image description here

我希望这会对您有所帮助, 谢谢。