当我尝试为基于视图的NSTableView
构建每行视图时,方法makeViewWithIdentifier:owner:
始终返回nil。该表是在IB中构建的,并且所有表似乎都正确链接,委托方法都按照我的预期调用。在查看关于makeViewWithIdentifier
方法的Apple文档时,我找不到该方法返回nil的原因。代码片段:
- (NSView *)tableView:(NSTableView *)tableView viewForTableColumn:(NSTableColumn *)tableColumn row:(NSInteger)row {
if ([tableColumn.identifier isEqualToString:@"foo"]) {
NSTableCellView *view = [tableView makeViewWithIdentifier:@"id" owner:self]; // Is always nil..
view.textField.stringValue = [myArray objectAtIndex: row];
return view;
}
return nil;
}
为什么view
可以为零?
答案 0 :(得分:0)
您必须在xib和代码中使用相同的标识符:
static NSString * const ItemMainTableCellViewIdentifier = @"ItemMainTableCellViewIdentifier";
nib = [[NSNib alloc] initWithNibNamed:@"ItemMainTableCellView" bundle:nil];
[self.table registerNib:nib forIdentifier:ItemMainTableCellViewIdentifier];
ItemMainTableCellView *cellView = [tableView makeViewWithIdentifier:ItemMainTableCellViewIdentifier owner:self];