NSLayoutManager 类中的函数 drawGlyphsForGlyphRange:atPoint: 是如何实现的?我知道它是由 NSTextView 调用的,然后又调用了 fillBackgroundRectArray:count:forCharacterRange:color:
但是它如何确定指定字形的背景颜色(如果有)?
NSLayoutManager 类中的函数 drawGlyphsForGlyphRange:atPoint: 是如何实现的?我知道它是由 NSTextView 调用的,然后又调用了 fillBackgroundRectArray:count:forCharacterRange:color:
但是它如何确定指定字形的背景颜色(如果有)?
你有另一个要求字形背景。您可以使用
- (void)drawBackgroundForGlyphRange:(NSRange)glyphsToShow atPoint:(CGPoint)origin;
更新:
我在 UIView 的 drawRect 中这样使用它。
NSRange glyphRange = [layoutManager glyphRangeForTextContainer:textContainer];
if (glyphRange.location != NSNotFound)
{
[layoutManager drawBackgroundForGlyphRange:glyphRange atPoint:label.frame.origin];
[layoutManager drawGlyphsForGlyphRange:glyphRange atPoint:label.frame.origin];
}