2015-06-16 75 views
1

我试图学习OSX开发,并且在.xib文件中创建了一个视图,并且试图初始化,然后将此视图添加为子视图。我已经搜索了如何做到这一点,所有的解决方案都适用于iOS,并使用诸如MyViewClass* myViewObject = [[[NSBundle mainBundle] loadNibNamed:@"MyViewClassNib" owner:self options:nil] objectAtIndex:0]之类的调用,但看起来这不适用于OSX开发。任何人对如何将xib初始化为视图有任何想法?谢谢将xib视图初始化为另一个NSView的子视图

回答

3

您可以使用loadNibNamed:owner:topLevelObjects:方法。这里有一个例子:

NSArray *views = nil; 
[[NSBundle mainBundle] loadNibNamed:@"TestView1" owner:nil topLevelObjects:&views]; 
[self.view addSubview:[views lastObject]]; 

上面的代码会将XIB的顶层内容加载到数组中。根据文档:

从指定的文件名和所有者的这个包中加载一个笔尖。 成功后,该方法返回YES,并且可选的out参数 topLevelObjects用nib的顶级对象填充。 对象遵循标准的可可内存管理规则,并且 是自动发布的。对顶级对象的IBOutlet属性应该为 强(保留)以证明所有权并防止重新分配。 或者,可以持有对顶层 对象数组的强烈参考。