归因于UITextField的文本

时间:2017-03-16 18:33:41

标签: ios swift uitextfield

我正在尝试使用UITextField的属性文本。我已经定制了我的占位符文本,但它忽略了我为主文本属性设置的值。

nameTextField.attributedText = NSAttributedString(string: "", attributes: [NSForegroundColorAttributeName : UIColor.white, NSParagraphStyleAttributeName : paraStyle, NSFontAttributeName : UIFont.init(name: "HelveticaNeue-Bold", size: 16)]);

奇怪的是,故事板中也存在一个问题。如果我在文本字段上设置值,则在我单击后立即丢失它们。

以前有人经历过这个吗?

2 个答案:

答案 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有什么问题。在某个时间点,内存使用率上升并且从未停止,并导致应用程序冻结。