3

NSTextViewコンテンツに合わせてサイズを変更するを実装しようとしています。行数が最大になるように作成しようとしています。つまり、この制限に達すると、それ以上拡大することはなく、ユーザーはスクロールできるようになります。

これを望んでいる人はたくさんいるようですが、これを完全に実装したものは見つかりませんでした。

アイデアは、コンテンツのサイズを取得し、NSTextView一致するようにサイズを変更することです。のレイアウトサイズを設定する方法がわかりませんNSTextViewframeどれを設定する必要があり、どれが期待できるかはわかりません。

のフレームを設定する方法を誰か教えてくださいNSTextView

4

1 に答える 1

4

変更する必要があるのはスクロール ビューの高さであることがわかりました。an の高さを変更するには、以下のようにメソッドNSTextViewを上書きします。-didChangeText

- (void)didChangeText
{
    NSScrollView *scrollView = (NSScrollView *) self.superview.superview;
    NSRect frame = scrollView.frame;

    // Calculate height
    NSUInteger numberOfLines = [self numberOfLines];
    NSUInteger height = frame.size.height;
    if (numberOfLines <= 13)
    {
        height = 22 + (numberOfLines - 1) * 14;
        if (height < 22)
            height = 22;
    }

    // Update height
    frame.size.height = height;
    self.superview.superview.frame = frame;
}

定数をいじって、希望する結果を取得します。

于 2012-06-25T20:41:47.533 に答える