2008-08-25 9 views

Antwort

4

Die NSFont-Klasse verfügt über eine Methode, die Ihnen die Größe eines Rechtecks ​​geben kann, das eine bestimmte attributierte Zeichenfolge einschließen würde. Ermitteln Sie die Schriftart, die von Ihrer Textansicht verwendet wird, erstellen Sie eine Zeichenfolge, die als sinnvolles Beispiel dafür dient, was in der Textansicht angezeigt wird, und verwenden Sie diese, um Ihre Rahmenhöhe anzugeben. (Die Rahmenhöhe muss einige Punkte größer sein als das tatsächliche Rechteck, in dem die Zeichenfolge angezeigt würde.)

Alternativ können Sie die verschiedenen Messwerte aus der Schriftart abrufen und versuchen, daraus einen sinnvollen Rahmen zu berechnen. Das könnte oder könnte nicht funktionieren; Zum Beispiel hat eine Schriftart wie Apple Chancery eine große Menge an Variationen abhängig von den Glyphen, die gerendert werden, wo sie in einem Wort sind, und so weiter; Ich weiß nicht, dass Sie im Voraus berechnen können, welche Größe benötigt wird, ohne genau zu wissen, was Sie machen würden.

2

Es wäre normaler, ein NSTextField als NSTextView für eine einzelne Textzeile zu verwenden.

Mit NSTextField, tun nur die folgenden:

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

Oh, und es gibt keine eingebaute 'aktuellen Standard-Schriftart'. Wenn eine Anwendung ein solches Konzept hat, muss sie es selbst verfolgen. Das Schriftfeld liest oder schreibt nichts global, es wird verwendet, um bestimmte Textobjekte zu bearbeiten.

+0

Es gibt die Systemschrift, die das sein könnte, was er meinte. –