我在理解如何在Mac上使用NSViewControllers时遇到一些问题。我正在尝试为NSTableView创建自定义表格单元格。在NSTableView的一个委托中,它可以返回一个视图,而不是一个单元格。
我有一个NSViewController的子类,在.xib中,所有东西都正确链接,但是当我初始化NSViewController时,它的UI组件没有初始化......甚至没有随附的默认视图。我已经尝试了一个干净的,库存的,未触及的NSViewController实现,只是为了确保问题不是我正在做的事情。可能是。我正在按如下方式初始化NSViewController:
testview *tmpChannel = [[testview alloc] initWithNibName:@"testview" bundle:nil];
.xib确实存在,并且所有插座都正确链接。谁能解释一下这里发生了什么?我正在使用带有Lion OS的xCode 4.1
感谢。
答案 0 :(得分:0)
使用
检查初始化NSLog(@"%@", [tmpChannel description]);
从我的代码中我会假设,你确实在这里获得了一个对象地址。这意味着错误可能在应该显示它的代码中。
顺便说一句,我建议使用大写的类名,例如TestView
。
修改强>
加载xibs的其他信息:xib文件的名称必须与类名称完全相同。在这种情况下,您实际上可以完全省略initWithNibName:bundle:
部分:
// xib file is "ViewController.xib"
// Class is defined as "ViewController"
ViewController *newController = [[ViewController alloc] init]; // this is enough
答案 1 :(得分:0)
只有在实际加载视图后才会初始化IB(xib)对象。而不是在initWithNibName:bundle:
期间