Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
是否可以让 NSView 自动调整大小(垂直)以适应其内容?内容只是两个 NSTextField,一个(在视图顶部)始终具有相同的高度,另一个(靠近视图底部)具有可变高度。
可能使它变得更加困难的是 NSView 是 NSCollectionViewItem 的视图。
问题是在计算高度之前需要知道宽度。一个成功的实现需要两个布局循环。第一个确定宽度。然后取该宽度并计算高度。然后添加或修改约束以反映高度和布局必须再次发生。
为了实现这一点,我将视图子类化以在本地存储帧大小的副本。当视图的内容发生变化时,我会将宽度清除为零。如果发现实际的框架矩形宽度与布局后存储的宽度不同,那么我知道需要计算高度,并且在宽度变化导致高度变化的情况下需要执行另一个布局。