NSTextView和突出显示链接

时间:2012-04-02 11:05:45

标签: objective-c macos cocoa nstextview

我正在使用NSTextViewNSAttributedString来显示使用NSLinkAttributeName的链接。我正在使用setLinkTextAttributes: NSTextView方法设置这些链接的样式。但是,我想在用户点击链接时给予用户视觉反馈,例如在用户按下鼠标左键时更改链接的颜色。有没有一种简单的方法可以做到这一点,还是我必须使用NSTextAttachment

1 个答案:

答案 0 :(得分:3)

如果您希望在mouseDown事件中发生这种情况,我认为没有一种简单的方法可以做到这一点。如果您可以等到单击完成,则可以使用文本视图委托方法textView:clickedOnLink:atIndex:来获取单击链接的索引。然后,您可以使用该索引传递给文本存储方法attributesAtIndex:effectiveRange:获取链接的范围,最后使用setAttributes:range:对链接的属性进行任何更改。

如果你真的需要在mouseDown上做,那么你必须继承文本视图并覆盖mouseDown并使用像characterIndexForPoint这样的东西来查明你是否点击了一个链接并按上面的方式做出回应。