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 回答