我有一个NSTableView
,它的数据源和委托已经设置好了。我想自定义单元格,所以我从库中拖动了一个基于视图的单元格视图。然后我创建了一个ServiceCell
继承自的类,NSTableCellView
以完全控制我的特殊单元格。之后,我从 nib 文件控制拖动到单元格类,以在单元格中创建IBOutlet
图像和文本字段的属性。
在 NSTableView 的委托方法中,我这样写:
- (NSView *)tableView:(NSTableView *)tableView viewForTableColumn:(NSTableColumn *)tableColumn row:(NSInteger)row {
// Get a new ViewCell
ServiceCell *cellView = [tableView makeViewWithIdentifier:@"ServiceCell" owner:self];
NSLog(@"Field = %@", cellView.textField); //which turns out to be null!!!
if( [tableColumn.identifier isEqualToString:@"ServiceColumn"] )
{
cellView.serviceImage.image = nil;
cellView.nameLabel.stringValue = @"Hello";
return cellView;
}
return cellView;
}
如您所见,文本字段为空!但是makeViewWithIdentifier:
在 Interface Builder 中找到了该单元格并在应用程序窗口中显示了该单元格。我只是无法设置它的价值,为什么?