我正在使用Objective-C和Cocoa,同时为Mac OS X开发 - 所以不是iPhone / Cocoa Touch。 (也就是说,如果iPhone的程序相同,我会感兴趣)
我正在开发一个简单应用的偏好设置窗口。我有一个带工具栏的NSWindow - 工具栏上有5个不同的项目,所有这些都需要提供一组不同的选项。
所以我在Interface Builder中设置NSToolbar及其项目,然后在菜单下面放置一个自定义视图 - 占用窗口的其余部分。我的计划是为每个NSToolbarItems选项设计接口,然后在单击指定的NSToolbarItem时将相应的视图绘制到自定义视图。
我猜我只是为每个视图创建一个NSView子类,在Interface Builder中创建一个空的xib - 将xib设置为我的自定义NSView,像往常一样编码......但这里有一些问题;
1 - 我怎样才能让xib文件显示在自定义视图上呢?我环顾四周,大多数文章似乎没有这种情况,或者我也可以联系到这种情况。
2 - 当窗口出现时,我希望默认视图出现在自定义视图中。再一次,我猜我只是在NSWindow的初始化代码中写出来 - 这没什么大不了的。它只是回到问题1 - 如何将我的NSView绘制到Interface Builder中指定的自定义视图?
我真的很感激任何帮助! 提前干杯。
答案 0 :(得分:1)
所以我在Interface Builder中设置NSToolbar及其项目,然后在菜单下面放置一个自定义视图 - 占用窗口的其余部分。
您不能在窗口内有菜单。你可以有一个弹出按钮,它有一个菜单,但没有直接菜单。你的意思是“工具栏”吗?
您无需为此创建自定义视图。制作标签视图并将其设置为tabless。为工具栏项提供尽可能多的选项卡视图项。在控制器中,为每个工具栏项编写一个操作方法,并在每个操作方法中切换选项卡视图的活动选项卡。
您可以激活IB中的不同选项卡,以使用IB中的视图填充它们。活动选项卡保存在笔尖中,因此请确保在保存之前将其设置回第一个选项卡,以便第一个选项卡是应用程序运行时最初处于活动状态的选项卡。
我怎样才能让xib文件显示在自定义视图上?
这个问题没有意义。
再一次,我猜我只是在NSWindow的初始化代码中写出来 - 这没什么大不了的。
如果您拥有自己的窗口初始化代码,那么您将只能这样做,只有在您拥有子类别NSWindow时才能使用。这样做的理由很少;除非你让窗口本身看起来不同(不是制作Aqua或HUD窗口),否则你应该将初始化代码移到别处,可能是前面提到的控制器(应该是nib的文件所有者)。
它只是回到问题1 - 如何将我的NSView绘制到Interface Builder中指定的自定义视图?
Interface Builder 中的自定义视图是一个普通的NSView(除非您明确地将其更改为您创建的NSView的子类)。但是,您在问题中描述的任何内容都不需要。