2012-04-02 79 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的東西:來確定你是否點擊了一個鏈接並按照上面的方式作出響應。