在实际应用程序中,视图层次结构可能很复杂,因此能够将不同的视图放在不同的 nib 中确实很有帮助。我正在关注InfoBarStackView 示例项目,他们提供了一个非常好的示例,说明如何使用托管不同视图的新 NSStackView 类。他们制作了一个DisclosureViewController
负责托管内容视图的内容,更改其大小,以便可以从打开状态变为关闭状态。
这是一个简化的例子。我们有两个独立的笔尖:
DisclosureViewController
ContentViewController
在公开视图的占位符视图中加载内容视图的最简单方法是什么?是否可以仅在 IB 中执行此操作?
目前我的 AppDelegate 有很多冗余,因为它需要保存对两个视图控制器的引用。我想知道是否有办法简化这种情况?对于这个简单的示例,AppDelegate 将使用如下代码从两个不同的 nib 加载,
// In AppDelegate.m
- (void)applicationDidFinishLaunching:(NSNotification *)aNotification {
[_disclosureView1.view replaceSubview:_disclosureView1.placeholder with:_contentView1.view];
[(NSView*)_window.contentView addSubview:_disclosureView1.view];
}