4

フォントが Cocoa で特定の Unicode 文字をレンダリングできるかどうかを判断する方法はありますか? または、デフォルトの代替文字を指定することは可能ですか?

4

3 に答える 3

3

CTFontGetGlyphsForCharactersCore Text フレームワークで確認してください。指定された Unicode 文字のグリフ インデックスに対して 0 を返す場合、その文字はそのフォントでサポートされていません。グリフが見つからなかった場合、関数は false を返します。

于 2010-04-22T15:15:47.457 に答える
3

iOS の古いバージョン (2.0) では、CGFontGetGlyphWithGlyphName() を使用できます。Apple はグリフ名を文書化していないようですが、次の Adob​​e リストに対応していると思います。

http://partners.adobe.com/public/developer/en/opentype/glyphlist.txt

たとえば、é (U+00E9) のグリフは「eacute」という名前で、グリフを取得するコードは次のようになります。

CFStringRef name = CFStringCreateWithCString(NULL, "eacute", kCFStringEncodingUTF8);
CGGlyph glyph = CGFontGetGlyphWithGlyphName(font, name);
于 2010-11-29T19:54:40.240 に答える