无法初始化NSViewController - 未保留UI对象

时间:2011-09-26 08:56:12

标签: objective-c macos cocoa

我在理解如何在Mac上使用NSViewControllers时遇到一些问题。我正在尝试为NSTableView创建自定义表格单元格。在NSTableView的一个委托中,它可以返回一个视图,而不是一个单元格。

我有一个NSViewController的子类,在.xib中,所有东西都正确链接,但是当我初始化NSViewController时,它的UI组件没有初始化......甚至没有随附的默认视图。我已经尝试了一个干净的,库存的,未触及的NSViewController实现,只是为了确保问题不是我正在做的事情。可能是。我正在按如下方式初始化NSViewController:

testview *tmpChannel = [[testview alloc] initWithNibName:@"testview" bundle:nil];

.xib确实存在,并且所有插座都正确链接。谁能解释一下这里发生了什么?我正在使用带有Lion OS的xCode 4.1

感谢。

2 个答案:

答案 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:

期间