NSView自动调整大小(垂直)

时间:2012-11-03 11:20:34

标签: macos cocoa nsview

是否可以自动调整NSView(垂直)以适应其内容?内容只是两个NSTextFields,一个(在视图的顶部)始终具有相同的高度,另一个(在视图的底部附近)具有可变高度。

可能使其更难的是NSView是NSCollectionViewItem的视图。

1 个答案:

答案 0 :(得分:0)

问题是在计算高度之前需要知道宽度。成功实现需要两个布局循环。第一个确定宽度。然后获取该宽度并计算高度。然后添加或修改约束以反映高度,并且布局必须再次发生。

为了实现这一点,我将视图子类化为在本地存储帧大小的副本。当视图的内容发生变化时,我会将宽度清零。如果发现实际的框架矩形宽度与布局后存储的宽度不同,那么我知道需要计算高度,并且在宽度变化导致高度变化的情况下需要执行另一个布局。