我是AppKit的新手但不是UIKit
我尝试使用NSTableView
,我想以编程方式填充。
所以我实施
- (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之前只有基于单元格的表?
答案 0 :(得分:4)
在Interface Builder的“属性”检查器窗格(Cmd-Opt-4)中,将表视图类型设置为“基于视图”。它默认为基于单元格。
您必须在左侧对象视图中选择表视图,或者在编辑器中单击它。请注意,第一次在编辑器中单击它时,它将选择滚动视图,因此您必须再次单击它以使其选择表视图对象。
我相信您需要Xcode 4.3或更新版本的OS X 10.7 SDK,以及基于视图的表格视图,才能使用。