I'd like to use a custom NSSplitView
with my NSSplitViewController
.
The docs say:
To provide a custom split view, set this property at any time before you call super in the inherited viewDidLoad() method; that is, before the split view controller’s isViewLoaded property is true.
My NSSplitViewController
subclass is called MainVC
.
I tried setting my custom split view in -viewDidLoad
before calling [super viewDidLoad]
:
- (void)viewDidLoad {
self.splitView = [MySplitView new];
[super viewDidLoad];
// Rest of viewDidLoad...
}
but it didn't work. I got the following error:
2017-09-02 10:35:43.527312-0700 Zee[6497:632581] ** * Assertion failure in -[MainVC setSplitView:], /BuildRoot/Library/Caches/com.apple.xbs/Sources/AppKit/AppKit- 1561/Controllers/NSSplitViewController.m:220
2017-09-02 10:35:43.527558-0700 Zee[6497:632581] MainVC: The -splitView can only be assigned before the view is loaded
I also tried overriding loadView
:
- (void)loadView {
self.splitView = [MySplitView new];
[super loadView];
}
But I get:
2017-09-02 10:39:39.377345-0700 Zee[6575:639146] ** * -[__NSArrayM objectAtIndex:]: index 0 beyond bounds for empty array
If I do the assignment after calling [super loadView]
, I get the same error as I did when I tried it in -viewDidLoad
.
How do I use a custom NSSplitView
in my NSSplitViewController
subclass?