0

メインウィンドウ(対応するMainWindowControllerクラス)とメインビュー(対応するMainViewControllerクラスのNSSplitViewController)を含むストーリーボードがあります。特定の機能については、NSSplitViewのデリゲートをMainWindowControllerクラスに設定しようとしています。NSSplitViewでデリゲートを変更できません

NSSplitViewデリゲートは、アプリケーションの起動時に既にMainViewControllerに設定されています。私はMainWindowControllerへの参照を取得することができるが、私は(NSSplitViewDelegateを実装しない)ウィンドウのコントローラへのデリゲートを設定しようとしたとき、私は取得しています次:これはまた起こる

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

私がしようとすると、デリゲートをnilに設定します。

デリゲートの設定に制限があるかどうか、およびIB内でアイテムのデリゲートを別のコントローラに設定する方法があるかどうかは誰にも分かりますか?

ありがとうございました。

答えて

1

私はこれについてのリファレンスを持っていませんが、スプリットビューとスプリットビューコントローラは分離されていないとは確信しています。幸いにも、NSSplitViewControllerは代理メソッドを反映し、介入する機会を与えます。したがって、分割ビューのデリゲートを変更する必要はありません。

+1

はい、ペニーが落ちます。結局のところ、分割ビューがそれを使用しない場合、NSSplitViewControllerを使用するポイントは何ですか?結局、View ControllerとWindow Controller内でプロトコル呼び出しを実装し、それらを処理する共有メソッドを呼び出すことが問題でした。 (このシナリオでは、タイトルバーの分割ビューでメインビューの分割ビューを追跡する必要がありました)。助けてくれてありがとう。 –

関連する問題