6

我是 AppKit 的新手,但不是 UIKit 的新手。
我尝试使用 anNSTableView并且我想以编程方式填充。

所以我实施

- (NSInteger)numberOfRowsInTableView:(NSTableView *)tableView {
    return 1;
}

- (NSView *)tableView:(NSTableView *)tableView viewForTableColumn:(NSTableColumn *)tableColumn row:(NSInteger)row{
    return nil;
}

我将我的类设置为 Interface Builder 中的委托和数据源。
numberOfRowsInTableView被调用但tableView:viewForTableColumn:row:未被调用。

如果我添加

-(id)tableView:(NSTableView *)aTableView objectValueForTableColumn:(NSTableColumn *)aTableColumn row:(NSInteger)rowIndex{
    return @"toto";
}

这个叫。

如果我理解,tableView:viewForTableColumn:row:则称为基于视图的表,tableView:objectValueForTableColumn:row:称为基于单元格的表。

如何定义我的表是基于视图的?

编辑: 好的......所以问题是我使用的是 10.6 和 tableView:viewForTableColumn:row: 从 10.7 开始可用。所以这意味着在 10.7 之前只有基于单元格的表?

4

1 回答 1

5

在 Interface Builder 的 Attributes inspector 面板 (Cmd-Opt-4) 中,将 table view type 设置为 View Based。默认情况下它是基于单元格的。

您必须在左侧对象视图中或通过在编辑器中单击它来选择表视图。请注意,第一次在编辑器中单击它时,它将选择滚动视图,因此您必须第二次单击它才能选择表视图对象。

我相信您需要 Xcode 4.3 或更高版本的 OS X 10.7 SDK,因此需要基于视图的表格视图。

于 2012-07-07T14:24:25.983 回答