2

我正在使用 NSMutableAttributedString 在标签中显示属性字符串。有没有办法在不改变属性的情况下修剪 NSMutableAttributedString 的第一个字符。

4

2 回答 2

3

否,因为属性的属性之一是它们影响的字符串的范围,如果字符串长度发生变化,这些将变得无效。

最好的方法是从头开始重建属性字符串,这可能是简单的还是困难的,这取决于您是否知道要添加的属性。

于 2014-10-15T12:57:12.187 回答
2

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
...
于 2017-06-26T22:32:23.820 回答