我正在使用帶有文本字段的應用程序。在這個字段中寫的文字將被打印出來,並且我遇到了一些諸如表情符號,中文字符等字符的問題......因爲字體不提供這些字符。如何檢查字體是否受字體支持
這就是爲什麼我想要得到字體提供的所有字符(字體被下載,所以我可以直接處理文件或與UIFont對象)。
我聽說CTFontGetGlyphsForCharacters
,但我不確定這個功能做我想做的事,我無法得到它的工作。
這裏是我的代碼:
CTFontRef fontRef = CTFontCreateWithName((CFStringRef)font.fontName, font.pointSize, NULL);
NSString *characters = @""; // emoji character
NSUInteger count = characters.length;
CGGlyph glyphs[count];
if (CTFontGetGlyphsForCharacters(fontRef, (const unichar*)[characters cStringUsingEncoding:NSUTF8StringEncoding], glyphs, count) == false)
NSLog(@"CTFontGetGlyphsForCharacters failed.");
這裏CTFontGetGlyphsForCharacters
回報假。這是我想要的,因爲字符''不是由使用的字體提供的。
問題是當我用NSString *characters = @"abc"
替換NSString *characters = @""
,CTFontGetGlyphsForCharacters
再返回false。顯然,我的字體爲所有ASCII字符提供了一個字形。
可能重複[如何判斷一個特定的字體都有一個特定的字形> 64K(http://stackoverflow.com/questions/13005091/how-to-告訴,如果一個特定的字體具有特定字形64k) – rmaddy
你嘗試'abc'。你嘗試過使用單個字符'a'嗎? – smirkingman
是的,但我得到了同樣的結果。 – Morniak