我该如何实现 - 当文本选择消失时,选择的彩色文本会恢复为选择前的颜色(在 swift、cocoa 中)?

How can I implement - when text selection is gone, the coloured text by selection is coming back to colour before selection (in swift, cocoa)?

我在两个文本视图中有文本,当我 select 在一个文本视图中有部分文本时 window,我可以在第二个文本视图中更改相同文本的文本颜色,如果第二个文本视图有它。然后,当这个 selection 消失时,第二个文本视图中的彩色文本仍然存在。我曾经通过通知 NSTextViewDidChangeSelectionNotification 获得此类功能。问题是当以前的 selection 消失时彩色文本恢复到以前的颜色时,我该如何实现这种情况?如果有某种通知说文本不再 selected,这将很容易做到。

你需要做的是根据你选择的长度执行一个动作(你显然可以用你自己的代码替换 print 函数):

func textViewDidChangeSelection(textView: UITextView) {
    if textView.selectedRange.length == 0 {
        print("No selection.")
    }
}

请注意,textViewDidChangeSelection 函数在插入点更改时仍会触发(即,如果您在未进行选择的情况下触摸 textArea 中不同的任何地方),而不仅仅是在选择更改时。

查看 this 从文档中获取有关 textView 的 属性 范围的更多信息。