Votre hypothèse est correcte. iOS exige que vous identifiiez une police sur la base de son nom Postscript (ou Fullname), qui n'est pas toujours le même que le nom de fichier réel de la police. .
Vous pouvez obtenir le nom PostScript en utilisant FontBook (comme indiqué dans la réponse acceptée ici), mais il existe d'autres moyens.
Directement dans XCode, vous pouvez extraire le nom PostScript des polices installées du projet via UIFont
. Il suffit de l'exécuter pour imprimer les noms PostScript des polices de votre projet installé :
Sur Objectif-C ( fuente ) :
for (NSString *fontFamilyName in [UIFont familyNames]) {
for (NSString *fontName in [UIFont fontNamesForFamilyName:fontFamilyName]) {
NSLog(@"Family: %@ Font: %@", fontFamilyName, fontName);
}
}
Ou Swift 3.0 ( fuente )
for familyName in UIFont.familyNames {
for fontName in UIFont.fontNames(forFamilyName: familyName ) {
print("\(familyName) : \(fontName)")
}
}
Ou du terminal à partir du répertoire où se trouvent vos fichiers de polices, vous pouvez exécuter ce script pour imprimer tous les noms PostScript des polices à l'intérieur du répertoire actuel (utilise l'attribut fc-scan
l'utilité de fontconfig qui est probablement déjà installé) ( fuente ) :
for file in "$arg"*.{ttf,otf}; do fc-scan --format "%{postscriptname}\n" $file; done
Voici une capture d'écran de la commande ci-dessus exécutée sur mon ordinateur. ~/Library/Fonts
répertoire :
Le script ci-dessus passera en revue tous les éléments suivants .ttf
y .otf
dans le répertoire courant, puis d'imprimer le fichier Nom PostScript pour chaque police, que vous pouvez utiliser pour référencer le fichier de police dans XCode ou ailleurs.
Si vous voulez être fantaisiste avec des informations supplémentaires (PostScriptName, Filename) et un code couleur, vous pouvez exécuter ce script alternatif :
for file in "$arg"*.{ttf,otf}; do
postscriptname=$(fc-scan --format "%{postscriptname}\n" $file);
printf "\033[36m PostScript Name:\033[0m %s \e[90m(%s)\033[0m\n" "$postscriptname" "$file";
done
C'est un peu plus rapide que de copier-coller du code dans votre fichier AppDelegate.m pour imprimer les noms chaque fois que vous voulez ajouter un nouveau fichier de police, ce qui est la méthode la plus courante, et c'est aussi plus rapide que d'ouvrir la police dans FontBook pour inspecter le nom PostScript.
CONSEIL UTILE : Si vous aliassez le script ci-dessus dans votre terminal de sorte que tout ce que vous devez faire est de taper une seule commande pour obtenir tous les noms de polices PostScript pour tous les fichiers dans le répertoire actuel, alors vous gagnerez du temps dans votre flux de travail de développement et vous aurez ce script pratique prêt à être utilisé quand vous en aurez besoin.
J'espère que cela vous aidera !