ボタンとテキストビューを含むビューがあります。ボタンをクリックすると、テキストビューの非表示ステータスが変更され、ビューに表示されます。スプリングとストラットが構成されているため、テキストビューはビューと共に垂直方向に拡張されます。これはすべてIBで行われます
次に、プログラムでテキストビューにテキストを挿入しますが、ユーザーがスクロールしなくてもすべてのコンテンツを表示するには、テキストビューが必要です。
これは、テキストビュー内のテキストの高さを計算するために使用するコードです:
- (float) getTextViewHeight {
//based on http://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/TextLayout/Tasks/StringHeight.html%23//apple_ref/doc/uid/20001809-CJBGBIBB
[textview.textContainer setLineFragmentPadding:0.0];
[textview.layoutManager glyphRangeForTextContainer:textview.textContainer];
return [textview.layoutManager usedRectForTextContainer:self.interactionData.textContainer].size.height;
}
textview での -sizeToFit の呼び出しの有無にかかわらず、大きすぎるか小さすぎます (内容によって異なります)。
ビューのサイズを調整できるように、すべてのコンテンツが表示されたテキストビューの高さを取得する必要があります。
おそらくNSTextFieldをラベルとして使用できることはわかっていますが、追加機能のためにNSTextViewが必要です(特に、スクロールビューのルーラービューを使用して)。
誰か提案はありますか?