固定幅のボックスで NSAttributedStrings の描画を行いたいのですが、描画時に使用される適切な高さを計算するのに問題があります。これまでのところ、私は試しました:
を呼び出し
- (NSSize) size
ますが、文字列が望む幅を与えるため、結果は(この目的では)役に立ちません。図面で使用しているのとまったく同じように、
- (void)drawWithRect:(NSRect)rect options:(NSStringDrawingOptions)options
必要な幅とオプションで形作られた四角形で呼び出します。NSStringDrawingUsesLineFragmentOrigin
結果は...わかりにくいです。確かに私が探しているものではありません。(このCocoa-Dev スレッドを含む多くの場所で指摘されているように)。一時的な NSTextView の作成と実行: tmpView のフレームを照会すると、幅は希望どおりであり、高さは多くの場合正しいです...長い文字列になるまで、必要なサイズの半分になることがよくあります。(ヒットする最大サイズはないようです。1 つのフレームは高さが 273.0 (約 300 では短すぎます)、もう 1 つのフレームは 478.0 (わずか 60 程度では短すぎます) になります)。
[[tmpView textStorage] setAttributedString:aString];
[tmpView setHorizontallyResizable:NO];
[tmpView sizeToFit];
他の誰かがこれを管理している場合は、ポインタをいただければ幸いです。