我想用自定义的 NSTableCellViews 创建一个 NSTableview。
这是我现在所拥有的:
- 名为CustomCell.xib的单元格(视图 nib)的 nib 文件
- 我的单元格的自定义类称为CustomCell
- 我的AppDelegate.m中的代码:
在这里,我以编程方式创建表视图:
NSScrollView *tableContainer = [[NSScrollView alloc]initWithFrame:NSMakeRect(self.window.frame.size.width-TABLEWIDTH, 0, TABLEWIDTH, self.window.frame.size.height)];
NSTableView *tableView = [[NSTableView alloc] initWithFrame:NSMakeRect(self.window.frame.size.width-TABLEWIDTH, 0, TABLEWIDTH, self.window.frame.size.height)];
NSTableColumn *firstColumn = [[[NSTableColumn alloc] initWithIdentifier:@"firstColumn"] autorelease];
[[firstColumn headerCell] setStringValue:@"First Column"];
[tableView addTableColumn:firstColumn];
tableView.dataSource = self;
tableView.delegate = self;
[tableContainer setDocumentView:tableView];
tableContainer.autoresizingMask = NSViewHeightSizable | NSViewMinXMargin;
[self.window.contentView addSubview: tableContainer];
这是我想放置自定义单元代码的委托方法:
- (NSView *)tableView:(NSTableView *)tableView viewForTableColumn:(NSTableColumn *)tableColumn row:(NSInteger)row {
// In IB the tableColumn has the identifier set to the same string as the keys in our dictionary
NSString *identifier = [tableColumn identifier];
if ([identifier isEqualToString:@"myCell"]) {
// We pass us as the owner so we can setup target/actions into this main controller object
CustomCell *cellView = [tableView makeViewWithIdentifier:identifier owner:self];
// Then setup properties on the cellView based on the column
cellView.textField.stringValue = @"Name";
return cellView;
}
return nil;
}
在我的自定义单元格的 nib 文件中,我已将单元格视图与名为CustomCell的自定义类连接起来,该类是NSTableCellView的子类。到目前为止,我还没有完成任何其他步骤。所以我的CustomCell.m只是默认的初始化代码。我没碰过。而且我没有在我的 nib 文件中做任何其他事情,所以我没有更改文件的所有者或类似的东西,因为我真的不知道该怎么做。任何人都可以帮忙吗?我查看了 Apple 文档中的示例文件,但经过几天的研究,我没有找到任何解决方案。如果您能帮助我,我将不胜感激。