フォントが Cocoa で特定の Unicode 文字をレンダリングできるかどうかを判断する方法はありますか? または、デフォルトの代替文字を指定することは可能ですか?
1853 次
3 に答える
3
CTFontGetGlyphsForCharacters
Core Text フレームワークで確認してください。指定された Unicode 文字のグリフ インデックスに対して 0 を返す場合、その文字はそのフォントでサポートされていません。グリフが見つからなかった場合、関数は false を返します。
于 2010-04-22T15:15:47.457 に答える
3
iOS の古いバージョン (2.0) では、CGFontGetGlyphWithGlyphName() を使用できます。Apple はグリフ名を文書化していないようですが、次の Adobe リストに対応していると思います。
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 に答える