NSTableView并非所有数据源方法都在调用

时间:2013-02-21 14:59:52

标签: objective-c osx-lion nstableview

我以编程方式创建了一个tableview,并成功添加了列,委托和数据源。但问题是只有一种数据源方法被调用

-(NSInteger)numberOfRowsInTableView:(NSTableView *)tableView

正如这里提出的问题: NSTableView: only numberOfRowsInTableView: datasource is called

但是这个问题没有具体的答案。

以下是我创建TableView的代码:

customTableView=[[NSTableView alloc]initWithFrame:frame];
[customTableView setBackgroundColor:[NSColor redColor]];
customTableView.delegate=self;
customTableView.dataSource=self;
NSTableColumn * column1 = [[NSTableColumn alloc] initWithIdentifier:@"Col1"];
[column1 setWidth:frame.size.width];
[customTableView addTableColumn:column1];
[self addSubView:customTableView];
[customTableView reloadData];

此外,我的所有数据源方法都属于同一类。

编辑:我在一个单独的视图类中创建此TableView,而不是在ViewController或AppDelegate中创建。

2 个答案:

答案 0 :(得分:0)

我猜你已经在init写了所有方法。

尝试移动setDatasource& setDelegateawakeFromNib

答案 1 :(得分:0)

我认为您缺少将表视图添加为窗口子视图的代码段。

假设您在其中创建表视图的对象具有window属性。以下是诀窍:

[[self.window contentView] addSubview:customTableView];