2008-08-25 11 views
2

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

答えて

4

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

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

2

1行のテキストに対してNSTextViewよりもNSTextFieldを使用する方が正常です。

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

ああ、および組み込みの「現在のデフォルトフォントは」ありません:NSTextFieldで

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

+0

システムフォントがあります。 –

関連する問題