我有一个继承自NSSplitViewController并重写splitViewDidResizeSubviews函数的类。
当我在NSSplitViewItem内的NSSplitViewController上调用collapse时,我看到NSSplitViewItem明显地调整了大小,但没有调用splitViewDidResizeSubviews函数。
如果我调整窗口的大小,就会调用splitViewDidResizeSubviews函数,这样我就知道它是正确实现的。
我能期望在崩溃时调用splitViewDidResizeSubviews函数吗?如果是,我可能做错了什么?

最佳答案

因为折叠splitViewItem不会调整其实际帧大小,而只是切换项的可见性。如果只切换isCollapsed状态,splitViewItem将保留帧大小。
(当项向外扩展时除外。即splitViewItem.collapseBehavior = .preferResizingSplitViewWithFixedSiblings。在我测试时,它调用splitViewDidResizeSubviews
因此,对于这种用法,我更喜欢重写NSSplitViewController的另一个方法,例如:

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

关于swift - 崩溃的NSSplitViewItem不会调用splitViewDidResizeSubviews,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/40059185/

10-14 23:12
查看更多