如何检查是否有选择?

How do I check if there is a selection?

我有一个 NSTextView,我需要检查是否有一个单词(或任何东西)的选择(蓝色突出显示),而不仅仅是一个光标。我怎样才能做到这一点。 nil 不行,我也想不通。

可以用[NSTextView selectedRanges]的方法看是否有选择

if (self.textView.selectedRanges.count > 0) {
    NSLog(@"Some text is selected!");
}

您可能需要阅读 documentation 了解更多信息。

一个NSTextView可以有多个选择,方法selectedRanges returns一个所有选择的数组。如果只有一个游标,则此方法 returns 单个 NSRangelocation 给出游标所在的位置,length 设置为零。

所以你的问题可以这样回答:

NSArray *allSelections = myTextView.selectedRanges;
BOOL hasSelection = allSelections.count > 1
                 || (allSelections.count == 1 && allSelections[0].length != 0);

HTH