Question

Je souhaite créer par programme un NSTextView.Comment puis-je déterminer la hauteur correcte du cadre afin que la vue affiche une ligne de texte dans la police par défaut actuelle ?

Était-ce utile?

La solution

La classe NSFont possède une méthode qui peut vous donner la taille d'un rectangle qui renfermerait une chaîne attribuée spécifique.Obtenez la police utilisée par votre vue texte, créez une chaîne qui sert d'exemple raisonnable de ce qui sera dans la vue texte et utilisez-la pour informer la hauteur de votre cadre.(La hauteur du cadre devra être supérieure d'un certain nombre de points au rectangle réel dans lequel la chaîne serait affichée.)

Alternativement, vous pouvez obtenir les différentes mesures de la police et tenter de calculer un cadre raisonnable à partir de celles-ci.Cela pourrait fonctionner ou non ;par exemple, une police comme Apple Chancery présente une énorme variation en fonction des glyphes rendus, de leur emplacement dans un mot, etc.Je ne sais pas si vous pouvez calculer à l'avance quelle serait la taille nécessaire sans savoir exactement ce que vous alliez rendre.

Autres conseils

Il serait plus normal d'utiliser un NSTextField qu'un NSTextView pour une seule ligne de texte.

Avec NSTextField, procédez simplement comme suit :

[textField setFont:myFont];
[textField sizeToFit];

Oh, et il n'y a pas de « police par défaut actuelle » intégrée.Si une application possède un tel concept, elle doit le suivre elle-même.Le panneau de polices ne lit ni n'écrit sur quoi que ce soit de global, il est utilisé pour opérer sur des objets texte spécifiques.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top