Frage

Ich möchte programmgesteuert erstellen Sie eine NSTextView.Wie kann ich bestimmen das richtige Rahmenhöhe, so dass die Ansicht zeigt eine Zeile des Textes in der aktuellen Standard-schriftart?

War es hilfreich?

Lösung

Die NSFont-Klasse hat eine Methode, die können geben Sie die Größe ein Rechteck, das würde einschließen, eine bestimmte zugeschrieben string.Holen Sie sich die schriftart für Ihren text-Ansicht, erstellen Sie eine Zeichenfolge, die dient als eine angemessene Beispiel von dem, was in der text-Ansicht, und verwenden, informieren Sie Ihre Rahmenhöhe.(Die Bildhöhe wird, müssen einige Punkte größer als die tatsächliche Rechteck der string würde angezeigt werden.)

Alternativ können Sie die verschiedenen Metriken aus der Schrift und Versuch zur Berechnung eines angemessenen Rahmen, von, dass.Das könnte oder könnte nicht Arbeit;für Beispiel, eine schriftart wie Apple Chancery hat eine riesige Menge von variation in Abhängigkeit von der Glyphen, die gerendert werden, wo Sie in einem Wort und so weiter;Ich weiß nicht, dass Sie berechnen können, was die benötigte Größe wäre im Voraus, ohne zu wissen, genau das, was Sie im Begriff waren zu Rendern.

Andere Tipps

Besser wäre es, normal zu sein, mit einem NSTextField als eine NSTextView für eine einzelne Textzeile.

Mit NSTextField, tun Sie einfach Folgendes:

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

Oh, und es ist keine gebaut-in 'aktuelle Standard font'.Wenn eine Anwendung hat solch ein Konzept braucht es zu verfolgen, es sich.Der font panel nicht Lesen oder schreiben etwas global, es ist verwendet zu bedienen, auf einen bestimmten text-Objekte.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top