1

NSTextView のテキストを次のように描画するにはどうすればよいでしょうか: http://i.imgur.com/R2yPflH.png

通常は NSAttributedString を使用しますが、丸みを帯びたストロークを適切に生成できません。

NSString を動作する NSBezierPath に変換するコードがありますが、NSTextView でそれを描画する方法がわかりません。

前もって感謝します!

4

1 に答える 1

1

NSTextView でカスタム描画するには、NSLayoutManager をサブクラス化し、そこで描画を処理する必要があります。あなたがやりたいことは簡単ではありませんが、私は思いません。過去に NSLayoutManager をサブクラス化して、文字の後ろと文字の間に追加のマークを描画しましたが、実際には、-drawGlyphsForGlyphRange:atPoint: をオーバーライドして、影響を受けるテキストの範囲を自分で描画する必要があります。渡された範囲を使用し、-characterRangeForGlyphRange:actualGlyphRange: を使用して文字範囲に変換し、範囲内の文字がカスタム描画を適用する文字であることを確認できます。このような範囲については、自分で描画します。トリッキーな部分は、行間などを考慮して、文字列が正しい位置に描画されるようにすることです。-lineFragmentRectForGlyphAtIndex:...

于 2013-06-13T19:14:58.983 に答える