【发布时间】:2017-09-02 17:46:57
【问题描述】:
我想在我的NSSplitViewController 中使用自定义NSSplitView。
docs 说:
要提供自定义拆分视图,请在之前的任何时间设置此属性 你在继承的 viewDidLoad() 方法中调用 super;也就是说,之前 拆分视图控制器的 isViewLoaded 属性为 true。
我的NSSplitViewController 子类称为MainVC。
在调用[super viewDidLoad] 之前,我尝试在-viewDidLoad 中设置我的自定义拆分视图:
- (void)viewDidLoad {
self.splitView = [MySplitView new];
[super viewDidLoad];
// Rest of viewDidLoad...
}
但它没有用。我收到以下错误:
2017-09-02 10:35:43.527312-0700 Zee[6497:632581] ** * 断言 -[MainVC setSplitView:] 失败, /BuildRoot/Library/Caches/com.apple.xbs/Sources/AppKit/AppKit- 1561/控制器/NSSplitViewController.m:220
2017-09-02 10:35:43.527558-0700 Zee[6497:632581] MainVC: The -splitView 只能在视图加载前分配
我也尝试过覆盖loadView:
- (void)loadView {
self.splitView = [MySplitView new];
[super loadView];
}
但我明白了:
2017-09-02 10:39:39.377345-0700 Zee[6575:639146] ** * -[__NSArrayM objectAtIndex:]: 空数组的索引 0 超出范围
如果我在调用[super loadView] 后执行分配,我会得到与在-viewDidLoad 中尝试时相同的错误。
如何在我的NSSplitViewController 子类中使用自定义NSSplitView?
【问题讨论】:
-
为什么你觉得需要使用 NSSplitViewController 来制作自定义拆分视图?您希望从 NSSplitView 和 NSSplitViewController 的子类中获得什么?
-
@LucasDerraugh 我想自定义分隔线的外观,子类化 NSSplitView 似乎是这样做的方法。
标签: macos cocoa appkit nssplitview nssplitviewcontroller