我使用NSMutableAttributedString在label中显示属性字符串。有没有办法修剪NSMutableAttributedString的第一个字符而不改变属性。
答案 0 :(得分:3)
否,因为属性的一个属性是它们影响的字符串的范围,如果字符串长度发生变化,这些属性将变为无效。
最好的方法是从头开始重建属性字符串,这可能很简单或很困难,具体取决于您是否知道要添加的属性。
答案 1 :(得分:0)
NSMutableAttributedString
支持deleteCharacters(in:NSRange)
方法:
@IBOutlet weak var topLabel: NSTextField!
@IBOutlet weak var bottomLabel: NSTextField!
...
let textAttributes : [String : Any] = [
NSForegroundColorAttributeName : NSColor.blue,
NSFontAttributeName : NSFont(name: "Menlo", size: 12.0)!
]
let text = NSMutableAttributedString(string: "ABCDEF",
attributes: textAttributes)
topLabel.attributedStringValue = text
text.deleteCharacters(in: NSMakeRange(0,1))
bottomLabel.attributedStringValue = text
...