2016-01-22 20 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的尺寸一樣大。如果它更大,沒有問題,但是如果它更小,那麼窗口就會被切斷。

這可能只是特定於我的用例,因爲我嘗試創建一個新項目並重現問題,但無法重現它。

相關問題