【发布时间】:2011-06-03 17:45:18
【问题描述】:
我正在以编程方式制作 NSTableView,但出于某种原因,无论我做什么,我都无法让该死的 headerView 显示出来。我必须以编程方式执行此操作而不使用 IB,因为我实际上是在一个名为 clozure cl 的 IDE 中开发此小部件,该 IDE 是一个包含可可桥的 lisp ide。最初我认为这个问题可能是由我的开发环境引起的,但我只是在 Xcode 中仅使用目标 C 创建了一个示例,似乎问题仍然存在。我所做的很简单:
我在 IB 中创建一个窗口,并在其 awkefromnib 方法中创建并设置了一个表格视图,代码如下:
- (void)awakeFromNib {
mydatasource *data = [[mydatasource alloc] init];
NSTableColumn *column = [[NSTableColumn alloc] initWithIdentifier:@"id"];
NSTableView *table = [[NSTableView alloc] initWithFrame: [[self
contentView]frame]];
[table setDataSource:data];
[table addTableColumn:column];
[table addTableColumn:column];
[[self contentView] addSubview:table];
}
这是我的数据源对象的代码:
- (int)numberOfRowsInTableView:(NSTableView *)aTableView
{
printf("NUM ROwS");
return 4;
}
- (id)tableView:(NSTableView *)aTableView objectValueForTableColumn:(NSTableColumn *)aTableColumn row:(NSInteger)rowIndex
{
printf("THE OTHER ONE");
return @"OKAY";
}
使用此代码,我得到一个包含两列和四行的窗口,每个单元格显示字符串“OKAY”,这一切都很好,除了表格没有标题。这可能是有意义的,除非当我查看表头方法时,它有一个初始化的头和一个值有意义的框架。我只是想知道为什么我看不到它。我需要做一些特殊的魔法来显示标题吗?我似乎在文档中找不到任何线索。再一次,lisp ide 必须以编程方式完成此操作,因此不建议使用我知道将具有工作 headerView 的 IB 将无济于事。非常感谢。
【问题讨论】:
标签: objective-c macos cocoa nstableview