2013-06-23 46 views
4

我有一個NSTextView,我已經使用-setLinkTextAttributes:方法設置了默認鏈接樣式屬性。這是我希望用於傳出鏈接的樣式。範圍內的NSTextView自定義鏈接顏色

在文本視圖中,我也有可點擊的區域來觸發文本視圖內的功能。我已經實現這些鏈接。我希望這些風格獨立於傳出鏈接。所以,寫代碼的邏輯方法是這樣的:

[attrStr addAttribute:NSLinkAttributeName 
       value:@"myapp://togglesomething" 
       range:hlRange]; 

[attrStr addAttribute:NSForegroundColorAttributeName 
       value:[NSColor yellowColor] 
       range:hlRange]; 

但鏈接的顏色不會更改爲一個我這裏設置。

所以,問題是:

  1. 我可以改變單個鏈接的顏色?
  2. 如果不是,我可以創建一個行爲如同鏈接而不是鏈接項的區域嗎?

回答

3

如果您沒有在setLinkTextAttributes中明確設置NSForegroundColorAttributeName,那麼您可以覆蓋單個鏈接範圍的值。

即剛剛設置:

[_textView setLinkTextAttributes:@{NSCursorAttributeName:[NSCursor pointingHandCursor]}]; 

和顏色你的鏈接範圍像你有以上。

3

陳林的解決方案工作。

[self.textView setLinkTextAttributes:@{NSForegroundColorAttributeName : [UIColor redColor],}];

正如原來的問題指出。我們可以爲不同的鏈接使用不同的顏色。 setLinkTextAttributes設置所有鏈接的屬性。