2012-04-02 80 views
0

我使用NSTextViewNSAttributedString来显示一些使用NSLinkAttributeName的链接。我正在使用NSTextViewsetLinkTextAttributes:方法来设计这些链接。但是,我想在点击链接时向用户提供视觉反馈,例如通过在用户按下鼠标左键时更改链接的颜色。有没有简单的方法来做到这一点,或者我必须使用NSTextAttachmentNSTextView并突出显示链接

+0

您可以随时使用“WebView”。然后,您可以按照自己的喜好设计链接。 – 2012-04-02 22:58:22

+0

由于性能方面的原因,我不想使用'WebView',因为同时有多个'NSTextView'可见。 – mplappert 2012-04-06 20:54:22

回答

3

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

如果你真的需要在mouseDown上做这件事,那么你必须继承文本视图并覆盖mouseDown,并且可能使用类似characterIndexForPoint的东西:来确定你是否点击了一个链接并按照上面的方式作出响应。