2012-05-11 4 views
1

NSTextViewのGlyphRangeとCharacterRangeの違いは何ですか?NSTextViewのGlyphRangeとCharacterRangeの違いは何ですか?

- (NSRectArray)rectArrayForCharacterRange:(NSRange)charRange withinSelectedCharacterRange:(NSRange)selCharRange inTextContainer:(NSTextContainer *)container rectCount:(NSUInteger *)rectCount; 
- (NSRectArray)rectArrayForGlyphRange:(NSRange)glyphRange withinSelectedGlyphRange:(NSRange)selGlyphRange inTextContainer:(NSTextContainer *)container rectCount:(NSUInteger *)rectCount; 

グリフと文字は常に同じ範囲にあると思います。 私はglyphRangeとcharRangeが同じであると思います。なぜなら、2つのメソッドを使用すると、charRangeとglyphRangeに同じ範囲の値が与えられ、出力NSRectArrayは同じになるからです。

私は誤解していますか?

答えて

1

グリフと文字の間に必ずしも1対1の対応があるとは限りません。合字は、2文字を表すグリフの例です。

このため、GlyphRangeとCharacterRangeは同じでない場合があります。文字列「fi」には2つの文字が含まれていますが、レイアウトマネージャーはそれを単一のグリフとして表示することを決定することができます(グリフの範囲は1です)。

グリフは文字の図形表現。 のような文字をと見なしてください。これは、書体や種類に関係なく同じである抽象的なエンティティです。文字として、Times New Roman Italic は、と同様に、コミックSans Bold と同じくらいです。視覚的外観におけるこの区別は、グリフレベルでのみなされる。

0

-rectArrayForCharacterRange

は、長方形のアレイと、参照することにより、所与文字範囲を囲む所与のコンテナ内の領域を定義するような矩形の数を返します。

Reference about CharacterRange

-rectArrayForGlyphRange

は、長方形のアレイと、参照することにより、所与グリフ範囲を囲む所与のコンテナ内の領域を定義するような矩形の数を返します。

Reference about GlyphRange

+0

グリフの範囲と文字の範囲は常に同じであると思われますが、それらの値がいつ異なるかはわかります – aelam

+1

https://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/FontHandling /Concepts/CharactersAndGlyphs.html –