2

プログラムでNSTextViewを作成したい。ビューに現在のデフォルトフォントで1行のテキストが表示されるように、正しいフレームの高さを決定するにはどうすればよいですか?

4

2 に答える 2

4

NSFontクラスには、特定の属性付き文字列を囲む長方形のサイズを指定できるメソッドがあります。テキストビューで使用されるフォントを取得し、テキストビューに表示される内容の適切な例として機能する文字列を作成し、それを使用してフレームの高さを通知します。(フレームの高さは、文字列が表示される実際の長方形よりも数ポイント大きい必要があります。)

または、フォントからさまざまなメトリックを取得し、そこから適切なフレームを計算することもできます。それはうまくいくかもしれないし、うまくいかないかもしれません。たとえば、Apple Chanceryのようなフォントは、レンダリングされるグリフ、単語のどこにあるかなどに応じて、非常に多くのバリエーションがあります。何をレンダリングするのかを正確に知らなくても、必要なサイズを事前に計算できるかどうかはわかりません。

于 2008-08-25T05:00:04.977 に答える
2

1 行のテキストに NSTextView よりも NSTextField を使用する方がより一般的です。

NSTextField を使用して、次のようにします。

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

ああ、組み込みの「現在のデフォルトフォント」はありません。アプリケーションにそのような概念がある場合は、それ自体を追跡する必要があります。フォント パネルはグローバルなものを読み書きするのではなく、特定のテキスト オブジェクトを操作するために使用されます。

于 2008-09-18T07:20:55.217 に答える