这实际上是一个两部分的问题,希望我的解释清楚:
我有一个 NSViewController 可以配置为在其部分视图上显示不同的自定义视图。例如,它的视图可以显示 CustomViewA 或 CustomViewB。
我可以通过为每个自定义视图创建一个 NSViewController 并使用处理 CustomViewA 的 NSViewController 或处理 CustomViewB 的 NSViewController 初始化 MyViewController 来完成这项工作。我使用 NSBox 并将其 contentView 设置为给定 NSViewController 提供的视图。
这种方法的问题是我有一个 NSBox,它的 contentView 将保存“MyView”,然后在“MyView”内我有另一个 NSBox,它将保存 CustomViewA 或 CustomViewB。
另一个问题是我希望 MyViewController 能够同时处理 CustomViewA 和 CustomViewB,而不是为它们中的每一个设置一个单独的 NSViewController。
这是我当前解决方案的示例代码:
// How I initialize the NSViewControllers
CustomViewControllerA* cvc = [[CustomViewControllerA alloc] initWithNibName:@"CustomViewA" bundle:nil];
MyViewController* controller = [[MyViewController alloc] initWithCustomViewController:cvc nibName:@"MyView" bundle:nil];
//...
// In Controller of main view
- (void)awakeFromNib
{
// container is an NSBox*
[self.container setContentView:[self.myViewController view]];
}
//...
// In MyViewController
-(void)awakeFromNib
{
// content is an NSBox*
[self.content setContentView:[self.customViewController view]];
}
如何让我的 CustomViewA 和 CustomViewB 存在于 MyView.nib 中,并且它们都使用 MyViewController 作为它们的控制器?
我怎么能让主视图保存 MyView 而不是 NSBox?
提前致谢!