在NSTextField中突出显示所选内容

5

我希望能够在NSTextField中突出显示部分文本,但我找不到任何方法可以实现这一点。

我已经定义了一个NSRange,但我找不到使用这个范围来突出显示文本的方法。唯一找到的是textField.selectText,但这似乎会突出显示整个字段。

我正在使用Swift 2。

1个回答

9
你可能已经注意到了,在没有焦点的情况下NSTextField只会显示选定范围。在这种情况下,编辑由一个名为字段编辑器的NSTextView处理。所以,确保该字段获得焦点(例如,使用NSWindowmakeFirstResponder:方法),然后使用NSControl方法currentEditor获取字段编辑器,然后可以使用NSText方法setSelectedRange:ObjC
NSText* fieldEditor = [myField currentEditor];
[fieldEditor setSelectedRange: mySelRange];

Swift

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

textField.setSelectedRange在NSTextField上不可用。它只能在NSTextView上使用。 :-( - iphaaw
您需要在currentEditor返回的NSText上调用setSelectedRange: - JWWalker
@iphaaw,我忘了直接给你留言,所以不确定你是否收到了。 - JWWalker
非常抱歉打扰您。根据我所了解的,setSelectedRange也不是NSText方法。如果您有时间,能否给我提供几行示例代码?非常感谢。 - iphaaw
1
@iphaaw:你在哪里看到的? 这是文档。 我会添加一些Objective-C代码,但我不知道Swift。 - JWWalker
谢谢你的帮助。 - iphaaw

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接