我创建了一个NSTableCellView
的子类来做一些自定义绘图。该表的内容是通过绑定到一个NSArrayController获得的,因此,当新数据添加到NSArrayController时,我的NSTableCellView子类的新实例会自动创建。创建新实例时,我需要一些代码才能运行一次,因此我认为它应该在init
之后。我实现了init和initWithFrame(见下文),但是在创建子类的新实例时(即在控制台中没有看到我的NSLog消息),这两者似乎都不会被调用。我应该使用不同的init方法吗?NSTableCellView子类的指定初始值设定项是什么?
- (id)init {
self = [super init];
if (self) {
// Initialization code here.
NSLog(@"init");
}
return self;
}
- (id)initWithFrame:(NSRect)frame {
self = [super initWithFrame:frame];
if (self) {
// Initialization code here.
NSLog(@"init with frame");
}
return self;
}
它们是如何创建的;编程或作为加载NIB的一部分? – trojanfoe
我不直接创建它们,它们是在新对象添加到绑定表的NSArrayController时创建的。我更新了我的问题以包含此信息。 –