2016-01-22 52 views
0

我正在使用Storyboard来构建OS X应用程序。它的排列使得我的主窗口控制器包含一个NSSplitViewController作为其内容视图控制器。NSSplitView和它的超级视图之间的高度差距 - 它来自哪里?

然而,有时候,当我打开应用程序,有拆分视图的顶部和窗口的标题栏的底部之间的差距:

app with gap

这种差距很快就消失当我调整窗口大小时。

我捕获了视图层次结构,我看到了这些自动布局约束。一个特别有趣的看着:

view debugger

有趣!但我无法在我的应用程序中找到指定这些自动布局约束的地方,既不在窗口中,也不在分割视图中。

一旦调整窗口大小,约束看起来是这样的(这是对NSThemeFrame):

enter image description here

的约束没有变灰,如果我把它从NSSplitView:

enter image description here

22的区别是有道理的;这就是标题栏本身的高度。

我能做些什么来找出它是什么样的行为?

回答

0

这个问题最终导致我需要从内到外开始。首先,我检查了框架中为NSSplitView的每个视图指定的尺寸。一旦我得到了这些尺寸,然后我去了NSSplitView的框架,并相应地设置尺寸。

然后,我去了NSWindow的框架,并确保它的尺寸至少与NSSplitView的尺寸一样大。如果它更大,没有问题,但是如果它更小,那么窗口就会被切断。

这可能只是特定于我的用例,因为我尝试创建一个新项目并重现问题,但无法重现它。

相关问题