最近在Xcode 5中切换到自动布局(并观看了WWDC 13的开发人员视频),除了基于视图的NSOutlineView之外,我发现所有事情都可以很好地工作。
在自动布局之前,此方法有效。一切正常,并在正确的位置,但是现在,特别是当我滚动时,一些新条目(并非全部)最终放在错误的位置,总是更大而稍高。
一旦重绘它们,问题就消失了,但是我不理解绘制这些NSTableCellViews以及由“大纲视图”创建它们的机制。我的意思是,看起来好像它们是在某个时刻创建的,程序正在猜测适当的约束,然后在重绘后对其进行修复。
发布图像来解释这一点真的很好,但是有人可以解释一下NSTableView或NSOutlineView中视图的生命周期吗?
最佳答案
我自己不得不解决这个问题,今天我得以解决。如果您正在使用NSTableCellView
中需要调整大小以适合其单元格或其任何子视图的内容,则会发生这种情况。我通过使用大小与占位符NSImage
完全相同的NSImage
(作为子视图添加到IB上的NSTableCellView
)解决了此问题。调整大小将打破您在此视图中添加或期望的约束。