我創建了一個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時創建的。我更新了我的問題以包含此信息。 –