我正在使用NSTextView
和NSAttributedString
来显示使用NSLinkAttributeName
的链接。我正在使用setLinkTextAttributes:
NSTextView
方法设置这些链接的样式。但是,我想在用户点击链接时给予用户视觉反馈,例如在用户按下鼠标左键时更改链接的颜色。有没有一种简单的方法可以做到这一点,还是我必须使用NSTextAttachment
?
答案 0 :(得分:3)
如果您希望在mouseDown事件中发生这种情况,我认为没有一种简单的方法可以做到这一点。如果您可以等到单击完成,则可以使用文本视图委托方法textView:clickedOnLink:atIndex:来获取单击链接的索引。然后,您可以使用该索引传递给文本存储方法attributesAtIndex:effectiveRange:获取链接的范围,最后使用setAttributes:range:对链接的属性进行任何更改。
如果你真的需要在mouseDown上做,那么你必须继承文本视图并覆盖mouseDown并使用像characterIndexForPoint这样的东西来查明你是否点击了一个链接并按上面的方式做出回应。