无法更改 NSSplitView 上的委托

Unable to change delegate on NSSplitView

我有一个故事板,其中包含一个主 window(具有相应的 MainWindowController class)和一个主视图(一个 NSSplitViewController,具有相应的 MainViewController class)。对于某些功能,我试图将视图中包含的 NSSplitView 的委托设置为 MainWindowController class.

在没有任何 IB 链接的情况下,NSSplitView 委托在应用程序启动时已设置为 MainViewController。我能够获得对 MainWindowController 的引用,但是当我尝试将委托设置为 window 控制器(它确实实现了 NSSplitViewDelegate)时,我得到以下信息:

*** Assertion failure in -[NSSplitView setDelegate:], /Library/Caches/com.apple.xbs/Sources/AppKit/AppKit-1404.34/AppKit.subproj/NSSplitView.m:600

如果我尝试将委托设置为 nil,也会发生这种情况。

有谁知道为什么会这样,是否有设置委托的限制,是否有办法使用 IB 将视图中的项目的委托设置为另一个控制器?

谢谢。

我没有这方面的参考,但我很确定拆分视图和拆分视图控制器并不意味着要分开。幸运的是,NSSplitViewController 反映了委托方法,让您有机会进行干预。因此,没有理由更改拆分视图的委托。