【发布时间】:2010-12-16 02:58:03
【问题描述】:
我很难集中精力使用 Interface Builder 和 NSViewController 加载视图。
我的目标是拥有一个满足以下描述的视图:顶部的顶栏(类似于工具栏,但不完全是)跨越视图的整个宽度,以及下面的第二个“内容视图”。这个复合视图归我的NSViewController 子类所有。
为此使用 Interface Builder 是有意义的。我创建了一个视图笔尖,并向其中添加了两个子视图,将它们正确布局(使用顶部栏和内容视图)。我已将File's Owner 设置为MyViewController,并连接了插座等。
我希望加载的视图(栏和内容)也在它们自己的 nib 中(这可能是让我绊倒的原因),并且这些 nib 将它们的自定义类设置为相应的 NSView 子类(如果适用)。我不确定将什么设置为他们的File's Owner(我猜MyController 应该是他们的所有者)。
唉,当我初始化 MyViewController 的实例时,我的笔尖实际上都没有显示。我已经将它正确地添加到我的窗口的 contentView 中(我已经检查过),实际上,事情有点加载。也就是说,awakeFromNib 被发送到条形视图,但它不会显示在窗口中。我想我肯定有一些电线交叉在某个地方。也许有人可以帮我减轻一些挫败感?
编辑一些代码来显示我在做什么
当我的应用程序完成启动时,从应用程序委托加载控制器:
MyController *controller = [[MyController alloc] initWithNibName:@"MyController" bundle:nil];
[window setContentView:[controller view]];
然后在我的 initWithNibName 中,我现在什么也不做,只是调用 super。
【问题讨论】:
-
发布您的代码。目前尚不清楚您是如何初始化视图控制器的。
标签: cocoa interface-builder nib nsviewcontroller