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

时间:2015-10-12 15:34:56

标签: swift cocoa notifications

我有两个文本视图中的文本,当我在一个文本视图窗口中选择文本的某些部分时,如果第二个textview具有它,我可以在第二个textview中更改相同文本的文本颜色。然后,当此选择消失时,第二个textview中的彩色文本仍然存在。我已经习惯了通知NSTextViewDidChangeSelectionNotification这样的功能。问题是当前一个选择消失时,我怎样才能实现这种情况?彩色文字会回到以前的颜色?如果有某种通知说不再选择文本,那将很容易做到。

1 个答案:

答案 0 :(得分:1)

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

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

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

查看this以获取有关selectedRange的{​​{1}}范围属性的文档中的详细信息。