突出显示 NSTextField 中的选择

Highlight a selection in NSTextField

我希望能够突出显示 NSTextField 中的一部分文本,但我无法Google实现此目的的方法。

我已经定义了一个 NSRange,但是我找不到使用这个范围来突出显示文本的方法。我唯一发现的是 textField.selectText 但这应该突出了整个领域。

我正在使用 Swift 2.

您可能已经注意到,NSTextField只有在获得焦点时才会显示选择范围,即第一响应者。在这种情况下,编辑由称为字段编辑器的 NSTextView 处理。所以,确保该字段有焦点(例如,通过使用NSWindowmakeFirstResponder:方法),然后使用NSControl方法currentEditor获取字段编辑器,然后你可以使用 NSText 方法 setSelectedRange:.

ObjC

NSText* fieldEditor = [myField currentEditor];
[fieldEditor setSelectedRange: mySelRange];

Swift

let fieldEditor = textfield.currentEditor()
fieldEditor?.selectedRange = range