我正在尝试学习OSX开发,并且我已经在.xib文件中创建了一个视图,并且我尝试初始化然后将此视图添加为子视图。我已经搜索了如何执行此操作,并且所有解决方案都适用于iOS并使用MyViewClass* myViewObject = [[[NSBundle mainBundle] loadNibNamed:@"MyViewClassNib" owner:self options:nil] objectAtIndex:0]
等调用,但看起来这不是OSX开发的选项。有人对如何将xib初始化为视图有任何想法吗?感谢
答案 0 :(得分:3)
您可以使用loadNibNamed:owner:topLevelObjects:
方法。这是一个例子:
NSArray *views = nil;
[[NSBundle mainBundle] loadNibNamed:@"TestView1" owner:nil topLevelObjects:&views];
[self.view addSubview:[views lastObject]];
上面的代码会将XIB的顶级内容加载到数组中。根据文件:
使用指定的文件名和所有者从此捆绑包中加载nib。 成功后,该方法返回YES和可选的out参数 topLevelObjects使用nib的顶级对象填充。 这些对象遵循标准的Cocoa内存管理规则和 是自动释放的。顶级对象的IBOutlet属性应该是 强(保留)以证明所有权并防止解除分配。 或者,可以对顶级人员进行强有力的引用 对象数组。