2016-10-15 39 views
0

我有一個繼承自NSSplitViewController的類並覆蓋了splitViewDidResizeSubviews函數。Collapsing NSSplitViewItem不調用splitViewDidResizeSubviews

當我調用NSSplitViewController內的NSSplitViewItem崩潰時,我看到NSSplitViewItem明顯調整大小splitViewDidResizeSubviews函數未被調用。

如果我調整窗口大小的splitViewDidResizeSubviews函數被調用,所以我知道這是正確實施。

我能期待splitViewDidResizeSubviews函數在崩潰時被調用嗎?如果是的話,我會做什麼錯誤?

回答

1

由於摺疊splitViewItem不調整其實際框架大小,但只是切換項目的可見性。如果您只切換isCollapsed狀態,splitViewItem將保留幀大小。

(一個例外是當項目向外擴展即splitViewItem.collapseBehavior = .preferResizingSplitViewWithFixedSiblings正如我測試時,它調用splitViewDidResizeSubviews。)

所以對於這種用法我寧願覆蓋例如NSSplitViewController的另一種方法:

func splitView(_ splitView: NSSplitView, shouldCollapseSubview subview: NSView, forDoubleClickOnDividerAt dividerIndex: Int 
+0

不幸的是'shouldCollapseSubview'不符合我通知我的要求,也沒有在'NSSplitViewController'中做任何其他方法,所以我只是添加更多的邏輯按鈕,調用崩潰和擴大,幷包含一個事務,所以我知道然後動畫師完成。 – zode64