我有一个继承自NSSplitViewController
的类并覆盖splitViewDidResizeSubviews
函数。
当我在NSSplitViewItem
内的NSSplitViewController
上调用折叠时,我看到NSSplitViewItem
明显调整大小splitViewDidResizeSubviews
函数未被调用。
如果我调整窗口大小,则会调用splitViewDidResizeSubviews
函数,因此我知道它已正确实现。
我可以期待在崩溃时调用splitViewDidResizeSubviews
函数吗?如果是的话,我可能做错了什么?
答案 0 :(得分:1)
因为折叠splitViewItem不会调整其实际帧大小,只是切换项目的可见性。如果您只是切换isCollapsed
状态,splitViewItem会保留帧大小。
(例外情况是当项目向外扩展时。即splitViewItem.collapseBehavior = .preferResizingSplitViewWithFixedSiblings
。在我测试时,它会调用splitViewDidResizeSubviews
。)
因此,对于这种用法,我更喜欢覆盖NSSplitViewController的另一个方法,例如:
func splitView(_ splitView: NSSplitView, shouldCollapseSubview subview: NSView, forDoubleClickOnDividerAt dividerIndex: Int