我的应用程序包含一个NSScrollView文档视图,其中包含一些垂直堆叠的文件NSTextViews- 每个文本视图在添加文本时都会在垂直方向上调整大小.
目前,这都是在代码中管理的.该NSTextViews自动调整,但我观察他们调整大小有NSViewFrameDidChangeNotification,重计算其所有来源,使他们不重叠,并调整其上海华盈(滚动视图的文档视图),使它们都适合和可滚动到.
这似乎是自动布局的完美候选人!我NSLayoutConstraints在第一个文本视图和它的容器,最后一个文本视图及其容器之间设置,以及彼此之间的每个文本视图.然后,如果任何文本视图增长,它会自动"按下"它下面的文本视图的来源以满足约束,最终增加文档视图的大小,每个人都很高兴!
除此之外,似乎没有办法NSTextView在基于约束的布局中添加文本时自动增长?使用与NSTextView之前输入的文本自动扩展完全相同的内容,如果我没有为其高度指定约束,则将其自动解析为0并且不显示.如果我确实指定了约束,即使是不等式(例如> = 20),它仍然会停留在该大小,并且不会随着文本的添加而增长.
我怀疑这与NSTextView的实现有关-intrinsicContentSize,默认情况下会返回(NSViewNoInstrinsicMetric, NSViewNoInstrinsicMetric).
所以我的问题是:如果我根据我的文本布局NSTextView返回更有意义intrinsicContentSize的子类,那么我的自动布局会按预期工作吗?
关于实现intrinsicContentSize垂直调整大小NSTextView的任何指针?