2017-01-30 39 views
0

在我的Objective-C/Cocoa应用程序中,初始窗口始终比故事板中设计的要宽得多。在故事板编辑器中,窗口大小为480x270,视图也是如此。该视图反过来只有一个表格视图,一个弹出式菜单和一个标签,所有都很好地配备了看起来正确的约束。它没有设置最小/最大内容大小,也没有可能影响窗口大小的代码。表格视图和弹出菜单的内容都比他们的控件短得多,所以它们不应该“增长”我的窗口。为什么我的初始窗口大于故事板中的设置?

然而,当应用程序启动时,窗口大约是。宽度为1000-1200像素。高度如故事板中所定义。如果我关闭窗口并创建一个新窗口,宽度又太大 - 即使我在关闭窗口之前手动调整窗口大小以适应其他窗口。所以它似乎并没有将窗口大小保存在某个地方。

我在窗口上没有自动保存名称,取消选中“可恢复”复选框也没有改变任何内容。

还有什么可能导致窗口比预期宽得多?

编辑:这是视图布局: View Layout

+0

我不确定它是如何在OSX中工作的,但是您对视图有高度和宽度限制吗? – Aris

+0

不,视图没有绝对的w/h约束 - 但当然对表视图,标签和弹出的边缘约束,以便它们与视图/窗口一起调整大小。 – fbitterlich

回答

-1

把所有的内容在垂直堆栈控制元件和约束,以0分配到所有四个侧面,并把这个新的垂直堆栈内的所有控件控制。

此外,请检查标签是否有适当的限制...因为大多数时候这个标签是主要的罪魁祸首。

+0

感谢您的建议,但为什么我不这样做?这不是基于堆栈的布局,我只是使用约束。标签位于弹出框的左侧,具有前导/尾随/基线约束。但标签没有增长,弹出菜单是(当我调整窗口大小时),这是正确的。 – fbitterlich

+0

什么是垂直堆栈? –

相关问题