修剪NSMutableAttributedString中的第一个字符

时间:2014-10-15 12:46:24

标签: ios objective-c nsmutableattributedstring

我使用NSMutableAttributedString在label中显示属性字符串。有没有办法修剪NSMutableAttributedString的第一个字符而不改变属性。

2 个答案:

答案 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
...