NSTextView自定义链接颜色范围

时间:2013-06-23 15:25:06

标签: macos cocoa nstextview

我有一个NSTextView,我使用-setLinkTextAttributes:方法为其设置了默认的链接样式属性。这是我希望用于传出链接的样式。

在文本视图中,我还有可单击区域,可触发文本视图中的功能。我已将这些实现为链接。我希望这些风格独立于外向链接。所以编写代码的逻辑方式是这样的:

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

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

但链接的颜色不会改变为我在此处设置的颜色。

所以问题是:

  1. 我可以更改单个链接的颜色吗?
  2. 如果没有,我可以创建一个不作为链接项的链接区域吗?

2 个答案:

答案 0 :(得分:3)

如果未在setLinkTextAttributes中显式设置NSForegroundColorAttributeName,则可以为单个链接范围覆盖此值。

即。刚设置:

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

为上面的链接范围着色。

答案 1 :(得分:3)

陈琳的解决方案奏效了。

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

正如原始问题所指出的那样。我们可以为不同的链接使用不同的颜色。 setLinkTextAttributes设置所有链接的属性。