我有一个主.xib视图,其中部分视图由自定义视图组成。与此同时,我还创建了单独的.xib子视图(以及它们各自的.h和.m文件)。然后将这些自定义类连接到主.xib
中的自定义视图这个设置工作正常,但是我希望有一些NSViewController控制每个不同的自定义视图。建议的方法是什么?
EG。 Main.xib>包含“自定义视图”>每个都使用NSView自定义类,并在其自己的.xib中设计
NSViewController类将响应其中一个自定义视图中发生的事件,而不是与Main.xib绑定的NSViewController
答案 0 :(得分:1)
我最终创建了带有XIB文件的NSViewControllers,而不是我以前的自定义视图。
然后,我为每个自定义视图创建了NSBox组件。我通过IBOutlet将这些连接到主NSViewController。
最后,我通过IBOutlets将每个自定义视图附加到专用的NSBox,如下所示:
- (void) awakeFromNib{
[super awakeFromNib];
//instantiate custom view controller
CustomViewController* customViewController = [[CustomViewController alloc] initWithNibName:@"CustomViewController"
bundle:nil];
[self.customNSBoxView setContentView:[customViewController view]];
}
答案 1 :(得分:0)
我倾向于做的只是创建一个新的NSViewController
子类并选择“Create XIB”选项。
从那里,我实例化视图控制器子类并将其添加到代码中的视图层次结构中。
这并不完全符合您的建议,但它确实使模块化/更容易测试。缺点是它挑战父母和孩子之间的约束。我也倾向于手动执行此操作,或者将子控件的视图添加到NSStackView中,这会给你一些约束。
可能有更好的方法,但这就是我们在multi-xib项目中使用的方法。