使NSTextView完全适合其内容

IEb*_*IEb 5 cocoa objective-c nsview nstextview

我有一个包含按钮和textview的视图.单击该按钮时,textview的隐藏状态将更改并显示在视图上.已配置弹簧和支柱,因此textview与视图垂直扩展.所有这些都在IB中完成

然后我以编程方式将文本插入textview,但我需要textview显示其所有内容,而无需用户滚动.

这是我用来计算textview中文本高度的代码:

- (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;    
}
Run Code Online (Sandbox Code Playgroud)

无论是否在textview上调用-sizeToFit,它都会太大或太小(取决于其内容).

我需要获得textview的高度,显示所有内容,以便我可以调整视图的大小.

我知道我可能会使用NSTextField作为标签,但我需要一个NSTextView来增加其功能(特别是使用封闭的scrollview的rulerview).

有人有什么建议吗?

dmi*_*aev -2

如果您想完全省略滚动视图(例如,创建一个附加到另一个超级视图的文本视图并调整自身大小以适合其文本),您可以看看 NSText。AFAICT 基本上是一个没有超级视图(滚动视图部分)的 NSTextView,并且可以自动调整自身大小。