我试图找到使用 Lion 的自动布局的最佳方法来制作这个简单的窗口,其中包含一个可滚动的视图,其中包含一个居中的图像和一个边框。看看我很棒的 ascii 艺术:
+==============+
| ||
| XXXXXX ||
| XXXXXX ||
| XXXXXX ||
| |
+--------------+
NSScrollView 的文档视图是一个翻转的 NSView 子类,它绘制背景图案,并在其中添加用户选择的图像(即不确定大小)。添加图像视图时,我给它约束以使其在文档视图中居中。文档视图本身受到约束,表示它希望比加载的图像略大。我想要的是明显的行为:在加载大于 scollview 的图像时,滚动条变为活动状态,在调整窗口大小时滚动条正常激活/停用。
但是,在加载大图像时,我看到的是文档视图正常扩展,但滚动视图和窗口随之扩展!在那之后,窗口不允许将大小调整得更小。显然我做得不对,但我不明白为什么。
我尝试更改文档视图的约束的优先级,任何高于 NSLayoutPriorityWindowSizeStayPut 的内容和窗口都会像上面一样扩展(我猜是有道理的),但任何更低的内容和文档视图永远不会调整大小,调整窗口的大小更小但滚动条不是启用。
有谁知道我是否需要在其他地方设置其他优先级,或者我需要额外的约束,或者完全不同的方法......我应该设置文档视图的“固有大小”吗?指向我还没有看到的任何自动布局开源/示例代码的指针也会很酷。