【发布时间】:2015-06-22 01:51:24
【问题描述】:
标题基本上说明了...我有一个文本字段。当它是第一响应者时,我想使用属性字符串来突出显示所有文本,以便向用户表明他们键入的任何内容都会清除它。当它辞去第一响应者时,我想删除高亮并显示纯文本。这是我所拥有的:
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的文档,设置“attributedText”属性将清除常规的“text”属性,反之亦然:
text
...在 iOS 6 及更高版本中,为该属性分配新值也会用相同的文本替换属性文本属性的值,尽管没有任何固有的样式属性...
attributedText
...为该属性分配一个新值也会用相同的字符串数据替换 text 属性的值,尽管没有任何格式信息...
但对我来说,情况并非如此。事实上,即使明确地将“attributedText”设置为 nil 也不会......什么都没有。它仍然记录相同的(即 NOT nil),并且仍然显示高亮(属性)文本。我也试过打电话setNeedsDisplay(),没有效果。
我到底错过了什么?任何帮助表示赞赏!
【问题讨论】:
标签: ios uitextfield nsattributedstring