我正在尝试使用UITextField的属性文本。我已经定制了我的占位符文本,但它忽略了我为主文本属性设置的值。
nameTextField.attributedText = NSAttributedString(string: "", attributes: [NSForegroundColorAttributeName : UIColor.white, NSParagraphStyleAttributeName : paraStyle, NSFontAttributeName : UIFont.init(name: "HelveticaNeue-Bold", size: 16)]);
奇怪的是,故事板中也存在一个问题。如果我在文本字段上设置值,则在我单击后立即丢失它们。
以前有人经历过这个吗?
答案 0 :(得分:5)
您想设置typingAttributes,而不是referencedString。
试试这个:
func textFieldDidBeginEditing(_ textField: UITextField) {
let paraStyle: NSParagraphStyle = NSParagraphStyle()
textField.typingAttributes = [NSForegroundColorAttributeName : UIColor.white, NSParagraphStyleAttributeName : paraStyle, NSFontAttributeName : UIFont.init(name: "HelveticaNeue-Bold", size: 16)]
}
答案 1 :(得分:1)
使用@DonMag解决方案时内存使用出现问题。
这有效:
textField.defaultTextAttributes = yourAttributes // (set in viewDidLoad / setupUI)
使用typingAttributes
有什么问题。在某个时间点,内存使用率上升并且从未停止,并导致应用程序冻结。