У меня есть раскадровка, содержащая основное окно (с соответствующим классом MainWindowController
) и основной вид (, с соответствующим классом MainViewController
). Для некоторых функций я пытаюсь установить делегат из NSSplitView
, содержащийся в представлении, в класс MainWindowController
.Невозможно изменить делегата на NSSplitView
Без связи с IB, делегат 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 для определения делегата элемента в представлении другому контроллеру?
Спасибо.
Да, пенни падает. В конце концов, какой смысл использовать NSSplitViewController, если разделенное представление не использует его? В конце концов, речь шла о выполнении вызовов протокола в контроллере просмотра и контроллере окон, а затем вызывая общий метод для их обработки. (В сценарии требовалось разделенное представление в строке заголовка, чтобы отслеживать разделенное представление в главном представлении). Спасибо за помощь. –