Dans macOS Sierra JavaScript pour l'automatisation, nous pouvons écrire:JXA - Obtenir des mesures de police NSAttributedString en JavaScript pour l'automatisation
// helvetica12Width :: String -> Num
function helvetica12Width(str) {
return $.NSAttributedString.alloc.init.initWithString(
str
)
.size.width;
}
pour obtenir des mesures pour une chaîne particulière dans la valeur par défaut Helvetica 12. Ce que je n'ai pas encore réussi à faire est de transmettre des attributs pour d'autres polices et tailles de police, et obtenir des mesures correspondantes pour ceux-ci.
Est-ce que quelqu'un a découvert un idiome/syntaxe qui fonctionne ici à partir de JXA ou AppleScript?
Mise à jour: C'est le genre de chose que j'ai expérimenté avec - bien loin du compte cependant, comme la variation de la taille des caractères/valeurs de nom ne modifie pas la valeur de retour:
(() => {
'use strict';
ObjC.import('AppKit');
return $.NSAttributedString.alloc.init.initWithStringAttributes(
"Substantiation", {
'NSFontAttributeName': $.NSFont.fontWithNameSize('Helvetica', 24)
}
)
.size.width
})();