5

メソッドを使用してデフォルトのリンクスタイル属性を設定した NSTextView があります-setLinkTextAttributes:。これは、発信リンクに使用したいスタイルです。

テキスト ビューには、テキスト ビュー内の機能をトリガーするクリック可能な領域もあります。これらをリンクとして実装しました。これらを発信リンクとは別にスタイル設定したい。したがって、コードを記述する論理的な方法は次のようになります。

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

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

ただし、リンクの色は、ここで設定した色に変わりません。

質問は次のとおりです。

  1. 個々のリンクの色を変更できますか?
  2. そうでない場合、リンク アイテムではなく、リンクとして動作するエリアを作成できますか?
4

2 に答える 2

4

setLinkTextAttributes で NSForegroundColorAttributeName を明示的に設定しない場合は、個々のリンク範囲に対してこれをオーバーライドできます。

つまり、設定するだけです:

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

上記のようにリンク範囲に色を付けます。

于 2013-12-02T18:57:21.903 に答える
3

Solution from Chen Lim worked.

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

As pointed in the original question. Can we have different colors for different links. setLinkTextAttributes sets the attributes for all the links.

于 2014-04-01T22:18:40.007 に答える