使用NSView加载Xib文件

时间:2011-06-27 10:31:46

标签: objective-c cocoa macos

我在MainMenu.xib中有一个自定义视图,它包含2个子视图。这些子视图应该从一些具有单个NSView的xib文件加载。 我怎样才能做到这一点? 包含IBOutlet和IBActions的类,每个xib应从哪个类继承?对于每个xib,我必须将文件所有者设置为包含outlet / actions的类吗?

2 个答案:

答案 0 :(得分:0)

您可以使用:

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

加载你的xib文件,topLevelObjects参数是一个通过引用传递的数组,在调用它之后它将包含你xib中的对象数组,你在这里感兴趣的是一个NSView类型的对象,你可以添加视图到你想要的地方

答案 1 :(得分:-1)

您的自定义视图或主菜单的头文件应该#include您提到的2个子视图,您应该将它们列为IBOutlet成员和IBOutlet属性。 (别忘了合成!)

在你的xib文件中,你应该可以拖入2个NSView,然后将它们的类设置为2个子类,然后通过从“文件所有者”拖动到“对象”列表中的对象来链接它们。