【发布时间】:2013-11-05 23:33:05
【问题描述】:
我有一个NSTableView,它的数据源和委托已经设置好了。我想自定义单元格,所以我从库中拖动了一个基于视图的单元格视图。然后我创建了一个类ServiceCell,它继承自NSTableCellView,以便完全控制我的特殊单元格。之后,我从 nib 文件中按住 Control 拖动到单元格类中,以在单元格中创建图像和文本字段的 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 中找到了该单元格,并在应用程序窗口中显示了该单元格。我就是无法设置它的值,为什么?
【问题讨论】:
-
你能解决这个问题吗?
-
我刚刚意识到我有同样的问题:stackoverflow.com/questions/27102024/…
标签: objective-c cocoa interface-builder nstablecellview