2012-05-11 32 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; 

我認爲glyph和char總是有相同的範圍。 在使用我認爲glyphRange和CHARRANGE是一樣的,因爲當我使用兩個方法中,我給CHARRANGE和glyphRange一相同的範圍內的值時,輸出NSRectArray是相同的。

我誤解?

回答

1

沒有總是字形和字符之間的一對一的對應關係。連字是代表兩個字符的字形的例子。

爲此GlyphRange和CharacterRange可能是不一樣的。字符串「fi」包含兩個字符,但佈局管理器可能會決定將其顯示爲單個字形(使用連字符),因此字形範圍的長度可能爲1.

請記住,字形是字符的圖形表示。將a這樣的字符想象爲一個抽象實體,它與字體或字體樣式無關。作爲一個字符,Times New Roman Italic a就像是漫畫Sans Bold a一樣。視覺外觀的這種區別只能在字形級別進行。

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 –

相關問題