2016-10-15 5 views
0

私はNSSplitViewControllerから継承し、splitViewDidResizeSubviews関数を上書きするクラスを持っています。NSSplitViewItemを折りたたんでもsplitViewDidResizeSubviewsが呼び出されません

私はNSSplitViewController内部NSSplitViewItem上の崩壊を呼び出すと、私はNSSplitViewItemが目に見えてsplitViewDidResizeSubviews関数が呼び出されていないサイズを変更ご覧ください。

ウィンドウのサイズを変更すると、splitViewDidResizeSubviews関数が呼び出されるため、正しく実装されていることがわかります。

私はsplitViewDidResizeSubviews関数が崩壊時に呼び出されると期待できますか?そうであれば、何が間違っているのでしょうか?

答えて

1

collapsing splitViewItemは実際のフレームサイズのサイズを変更するのではなく、項目の表示を切り替えるだけなので、 isCollapsedのステータスを単に切り替えると、splitViewItemにフレームサイズが保持されます。

(アイテムが外側に膨張したときに例外がある。すなわちsplitViewItem.collapseBehavior = .preferResizingSplitViewWithFixedSiblings Iを試験としては、splitViewDidResizeSubviewsを呼び出す。。。)

そこで、このような使用のために私は、例えばNSSplitViewControllerの別のメソッドをオーバーライドすることを好む:

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

残念ながら、 'shouldCollapseSubview'は、私が通知されたときと、' NSSplitViewController'の他のメソッドを実行していないときのための私の要件を満たしていないので、崩壊を呼び出すボタンにもっと多くのロジックを追加してトランザクションをインクルードしました。アニメーターが完成しました。 – zode64

関連する問題