NSTextView
次のように文字の四角形を取得できます。
//Get the range of characters, which may be different than the range of glyphs
NSRange range = [[textView layoutManager]glyphRangeForCharacterRange:NSMakeRange(charIndex, 0) actualCharacterRange:NULL]
//Get the rect of the character
NSRect rect = [[textView layoutManager]boundingRectForGlyphRange:range inTextContainer:[textView textContainer]];
次に、必要なものを取得NSGlyph
します。
NSGlyph glyph = [[textView layoutManager]glyphAtIndex:range.location];
そして、それを次のように描画しますNSBezierPath
:
NSBezierPath *path = [NSBezierPath bezierPath];
[path appendBezierPathWithGlyph:glyph inFont:myFavoriteFont];
次に、その境界のパスをクエリします。
NSRect actualRect = [path bounds];
その後、これら 2 つの長方形を比較できます。
NSLayoutManager Class Reference、Text System Overview、およびText Layout Programming Guideを参照してください。