无法从UITextField清除“attributedText”属性

时间:2015-04-15 21:43:21

标签: ios uitextfield nsattributedstring

标题基本上说明了...我有一个文本字段。当它是第一响应者时,我想使用属性字符串来浏览所有文本,以便向用户指示他们键入的任何内容都将清除它。当它取消第一响应者时,我想删除高亮显示并显示纯文本。这就是我所拥有的:

func toggleHilight() {
    self.hilighting = !self.hilighting // This property is initialized to false

    if (self.hilighting) {
        self.inputURLField.attributedText = NSAttributedString(string: self.inputURLField.text, attributes: [NSBackgroundColorAttributeName : UIColor.blueColor()])
    } else {
        self.inputURLField.text = BrowserNavManager.sharedInstance.currentURL.absoluteString
    }
}

根据Apple的文档,设置" attributionText"财产将清除常规"文本"财产,反之亦然:

text

  

...在iOS 6及更高版本中,为此属性指定新值也会使用相同的文本替换attributedText属性的值,尽管没有任何固有的样式属性...

attributedText

  

...为此属性分配新值也会使用相同的字符串数据替换text属性的值,尽管没有任何格式信息......

但对我来说,事实并非如此。事实上,甚至明确设置" attributionText"没有......没有。它仍然记录相同(即非零),并仍显示高亮(归属)文本。我也尝试过调用setNeedsDisplay(),但没有效果。

我在这里错过了什么?任何帮助表示赞赏!

1 个答案:

答案 0 :(得分:0)

解决了......通过设置" selectedTextRange"我找到了一种方法来触发系统hi-lighting(无论如何我试图猿)。文本字段上的属性。