0

我正在使用 Storyboards 构建一个 OS X 应用程序。它的安排使我的主窗口控制器包含一个 NSSplitViewController 作为其内容视图控制器。

但是,有时,当我打开应用程序时,拆分视图的顶部和窗口标题栏的底部之间存在间隙:

有差距的应用

一旦我调整窗口大小,这个差距就会消失。

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

查看调试器

有趣的!但是我在我的应用程序中找不到任何指定这些自动布局约束的地方,无论是在窗口中还是在拆分视图中。

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

在此处输入图像描述

如果我从 NSSplitView 中查看约束,它不会变灰:

在此处输入图像描述

22 的差异是有道理的;这是标题栏本身的高度。

我能做些什么来找出是什么让它表现得像这样?

4

1 回答 1

0

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

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

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

于 2016-02-14T02:09:08.670 回答