【问题标题】:Custom text style drawing in an NSTextViewNSTextView 中的自定义文本样式绘图
【发布时间】:2013-06-13 17:04:38
【问题描述】:

我将如何绘制一个 NSTextView 的文本,使其看起来类似于:http://i.imgur.com/R2yPflH.png

我通常会使用 NSAttributedString,但我无法正确生成圆角笔划。

我有将 NSString 转换为 NSBezierPath 的代码,它可以工作,但我不确定如何在 NSTextView 中绘制它。

提前谢谢你!

【问题讨论】:

    标签: objective-c macos cocoa


    【解决方案1】:

    对于 NSTextView 中的自定义绘图,您需要继承 NSLayoutManager 并在那里处理绘图。不过,我不认为你想做的事并不容易。过去我将 NSLayoutManager 子类化以在字符后面和字符之间绘制额外的标记,但实际上您需要自己绘制受影响的文本范围,方法是覆盖 -drawGlyphsForGlyphRange:atPoint:。您可以使用传入的范围,使用 -characterRangeForGlyphRange:actualGlyphRange: 将其转换为字符范围,并检查范围中的字符是否是您希望应用自定义绘图的字符。对于这样的范围,您将自己绘制。棘手的部分是确保您的字符串绘制在正确的位置,同时考虑到行间距等。 -lineFragmentRectForGlyphAtIndex:... 和 -locationForGlyphAtIndex: 应该是你的朋友。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-11-28
      相关资源
      最近更新 更多