Como verificar se um caractere é suportado por uma fonte
Estou trabalhando em um aplicativo com um campo de texto. O texto escrito neste campo será impresso e eu tenho um problema com alguns caracteres como emoji, caracteres chineses, etc ... porque a fonte não fornece esses caracteres.
É por isso que desejo obter todo o caractere fornecido por uma fonte (a fonte é baixada para que eu possa lidar diretamente com o arquivo ou com um objeto UIFont).
Eu ouvi sobreCTFontGetGlyphsForCharacters
mas não tenho certeza se essa função faz o que eu quero e não consigo fazê-lo funcionar.
Aqui está o meu código:
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.");
AquiCTFontGetGlyphsForCharacters
Retornafalso. É o que eu quero, porque o caractere '' não é fornecido pela fonte usada.
O problema é quando eu substituoNSString *characters = @""
porNSString *characters = @"abc"
, CTFontGetGlyphsForCharacters
volte novamentefalso. Obviamente, minha fonte fornece um glifo para todos os caracteres ASCII.