彩色子弹NSTextList

时间:2017-06-13 16:36:42

标签: swift macos cocoa nstextview

我正在构建的文本编辑器中使用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的功能,也不区分子弹是否已经着色。关于如何做到这一点的任何建议将不胜感激。

0 个答案:

没有答案