我正在构建的文本编辑器中使用NSTextList。我正在尝试更改NSTextList中项目符号的颜色,同时仍保留NSTextList的内置功能。到目前为止,我已经尝试覆盖NSTextList中的shouldChangeText函数,以便在添加项目符号时拦截并尝试用我自己的彩色子弹替换它。
override func shouldChangeText(in affectedCharRange: NSRange, replacementString: String) {
if replacementString == "\t\u{2022}\t" {
let redBullet = NSAttributedString(string: "\t\u{2022}\t", attributes: [NSForegroundColorAttributeName: NSColor.red])
insertText(redBullet, replacementRange: affectedCharRange)
return false
}
}
但是,这不保留NSTextList的功能,也不区分子弹是否已经着色。关于如何做到这一点的任何建议将不胜感激。