Macros NSLayoutManager绘图图示符RGLYPHRANGE:atPoint:
NSLayoutManager类中的函数drawGlyphsForGlyphRange:atPoint:是如何实现的?我知道它由NSTextView调用,然后依次调用FillBackgroundRectary:count:forCharacterRange:color:Macros NSLayoutManager绘图图示符RGLYPHRANGE:atPoint:,macros,drawing,nstextview,nslayoutmanager,Macros,Drawing,Nstextview,Nslayoutmanager,NSLayoutManager类中的函数drawGlyphsForGlyphRange:atPoint:是如何实现的?我知道它由NSTextView调用,然后依次调用FillBackgroundRectary:count:forCharacterRange:color: 但是它如何确定指定glyph范围的背景色(如果有)?您需要另一个glyph background调用。你可以用 - (void)drawBackgroundForGlyphRange:(NSRange)glyphsToShow
但是它如何确定指定glyph范围的背景色(如果有)?您需要另一个glyph background调用。你可以用
- (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];
}
我知道,但这个函数显然从未被调用过。所有函数都被重写,并转到super。我从未在iOS上记录对该函数的调用。