2011-06-27 40 views
0

我在MainMenu.xib中有一个自定义视图,它将包含2个子视图。这些子视图应该从一些具有单个NSView的xib文件加载。 我该怎么做? 包含IBOutlet和IBActions的类对于每个应从哪个类继承的xib?对于每个xib,我必须将文件所有者设置为包含出口/动作的类?使用NSView加载Xib文件

+0

好的,我做到了:) – a438

回答

-1

您的自定义视图或主菜单的头文件应该包括您提到的2个子视图,并且您应该将它们列为IBOutlet成员和IBOutlet属性。 (不要忘记综合!)

在你的xib文件中,你应该能够拖入2个NSView,然后将他们的类设置为你的2个子类,然后通过从'文件所有者'拖动到对象“列表中的对象。

+0

也许我没有解释得很好......我想从xib文件中加载2个NSViews MainMenu.xib(由xcode创建)。这mainMenu.xib包含一个NSView,我想加载前面提到的2个xib。我正在为mac开发 – a438

+0

另外我想知道将一个类与Outlets/Actions链接到xib文件的最佳/正确方法(并在IB中查看它们)。我应该在文件所有者中设置我的自定义类还是拖动NSObject(来自IB的对象库)? – a438

+0

您的第一条评论:是的,我写了UIView而不是NSView ...但它们基本上是一样的,我写的东西应该仍然有效。第二条评论:由于你的子类继承自NSView,如果你拖动一个NSView对象到Interface Builder中,然后将它们的类设置为你的子类的类(在身份检查器选项卡上),那么它们应该可以正常工作。当然,您仍然需要在主菜单的loadView :(或类似的)方法中初始化它们。 – Luke

0

您可以使用:

- (BOOL)loadNibNamed:(NSString *)nibName 
       owner:(id)owner 
    topLevelObjects:(NSArray * _Nonnull *)topLevelObjects 

加载您的厦门国际银行的文件,该topLevelObjects参数是通过引用传递数组,调用该函数后,将包含对象的数组从厦门国际银行,你所感兴趣的东西在这里是一个NSView类型的对象,你可以添加视图到任何你想要的地方