XCode 4.5 中的 Interface Builder 尊重一些视图的 intrinsicContentSize,例如 NSButton,但我无法说服它在我自己的自定义子视图中尊重它。这会导致 IB 添加额外的约束,试图强制在 IB 中绘制布局,然后导致程序运行时不使用内在大小。
例如,考虑在窗口中居中的按钮,以及在窗口中居中的自定义视图……</p>
可以看到自定义视图有四个约束,大概是因为IB不知道视图的intrinsicContentSize。您可以更改添加的额外约束,例如,您可以强制将其设置为宽度和高度,但不能删除它们。
我现在通过搜索和删除 awakeFromNib 中的额外约束来应对这个问题,但必须有更好的方法来做到这一点。