1

首先让我说我来自 iOS 世界,正在尝试制作我的第一个 OSX 应用程序。因此,如果答案很明显,请为这个问题道歉。:)

我正在尝试设置一个 NSTextView 以根据其中的文本量调整大小。我已经成功地让 NSTextView 正确调整大小,但它的超级视图(NSScrollView)不会调整大小。

这是我目前所拥有的......

[self.messageBodyTextView setVerticallyResizable:YES];

[self.messageBodyTextView.layoutManager ensureLayoutForTextContainer:self.messageBodyTextView.textContainer];
[self.messageBodyTextView.layoutManager boundingRectForGlyphRange:NSMakeRange(0, [self.messageBodyTextView.layoutManager numberOfGlyphs]) inTextContainer:self.messageBodyTextView.textContainer];

NSRect rect = [self.messageBodyTextView.layoutManager usedRectForTextContainer:self.messageBodyTextView.textContainer];

[self.messageBodyTextView.textContainer setContainerSize:rect.size];

[self.messageBodyTextView setMaxSize:NSMakeSize(self.messageBodyTextView.bounds.size.width, rect.size.height)];

[self.messageBodyTextView.textContainer setHeightTracksTextView:YES];

[self.messageBodyScrollView.documentView setFrameSize:rect.size];
[self.messageBodyScrollView.documentView setFrame:rect];
[self.messageBodyScrollView setFrameSize:rect.size];

self.messageBodyTextView 调整所有这些代码的大小就好了(我感觉那里有一堆冗余代码)。但是 self.messageBodyScrollView 要么根本不调整大小,要么如果我尝试使用 setBounds 那么它不仅将 messageBodyTextView 调整为 messageBodyScrollView 的完整大小,而且还会拉伸里面的文本。

注意:messageBodyTextView 和 messageBodyScrollView 都作为 IBOutlets 附加到我的 IB 文档中。

我的代码过去要短得多,但这是我通过添加我能找到的任何东西来使这两个视图匹配的地方。

任何帮助将不胜感激!

4

0 回答 0