Xcode4 请解释如何在Cocoa中控制表视图?

Xcode4 请解释如何在Cocoa中控制表视图?,xcode4,tableview,datasource,cell,Xcode4,Tableview,Datasource,Cell,我搜索谷歌以找到一个好的答案,但大多数教程都显示在以前的Xcode版本中。。。 此外,我不想从Interface Builder中拖放单元格,而是想从NSObject子类文件以编程方式控制表视图。 我现在做的是:1。创建名为tableController.h的文件,该文件是NSObject的子类。 2.我在Nib文件中创建了一个NSObject对象,并将其设置为tableController的子类。 3.我将一个表视图拖到我的窗口。 4.我按住CTRL键并将其从表视图拖动到我的tableCon

我搜索谷歌以找到一个好的答案,但大多数教程都显示在以前的Xcode版本中。。。 此外,我不想从Interface Builder中拖放单元格,而是想从NSObject子类文件以编程方式控制表视图。

我现在做的是:1。创建名为tableController.h的文件,该文件是NSObject的子类。 2.我在Nib文件中创建了一个NSObject对象,并将其设置为tableController的子类。 3.我将一个表视图拖到我的窗口。 4.我按住CTRL键并将其从表视图拖动到我的tableController.h,以便创建outlet表视图 5.我在接口文件中创建以下函数:

-(int)numberOfRowsInTableView:(NSTableView *)cocoaTV;
-(id)tableView:(NSTableView *)cocoaTV:objectValueForTableCollumn:(NSTableColumn *)tableCollumn row:(int)row;
六,。我实现了如下功能:

-(int)numberOfRowsInTableView:(NSTableView *)cocoaTV{
    return 5;
}
-(id)tableView:(NSTableView *)cocoaTV:objectValueForTableCollumn:(NSTableColumn *)tableCollumn row:(int)row{
    NSArray *tvArray = [[NSArray alloc]initWithObjects:@"1",@"2",@"3",@"4",@"5", nil];
    NSString *v = [tvArray objectAtIndex:row];
    return v;
}
然后我按住CTRL键并将其从Interface Builder中的对象拖动到表视图,以设置数据源并将其设置为委托

当我构建并运行应用程序时,它显示它已经创建了5行,但在每列的每个单元格中,它都显示为表视图单元格

如果您有任何帮助,我们将不胜感激。…

-idtableView:NSTableView*CoCoCoatv:ObjectValueforTableColumn:NSTableColumn*TableColumn行:introw错误。。老实说,我不确定它是如何编译的,除非复制/粘贴它时出错。该方法应如下所示:

- (id)tableView:(NSTableView *)tableView objectValueForTableColumn:(NSTableColumn *)tableColumn row:(NSInteger)row {
    NSArray *tvArray = [[NSArray alloc]initWithObjects:@"1",@"2",@"3",@"4",@"5", nil];
    NSString *v = [tvArray objectAtIndex:row];
    return v;
}

那么,我们应用的表是NSTableView*语句后面的tableView,而列是NSTABLECLUMN后面的tableColumn?我需要有人解释一下这些方法……没错,行就是表格的行。除非有多个列,否则不需要担心tableColumn。如果确实有多个列,请确保在Interface Builder中设置NSTableColumn标识符,以便确定要求您为哪个列返回objectValue。好的,感谢您的解释。。。。但是,出于某种原因,它仍然在每一行和每一列中显示表视图单元格。嗯:在interface builder中,表列是否包含文本字段单元格?如果没有,请尝试在任何单元格的顶部拖出一个文本字段单元格。好的!成功了!非常感谢你!没有修复问题,但泄漏了正在创建的阵列。您应该改为使用[NSArray arrayWithObjects:…]。