2013-06-23 45 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设置所有链接的属性。