我刚开始自学可可,我遇到了一个(可能很简单)问题,显示多个基于视图的 NSTableViews 具有相同的委托和控制器(在我的例子中是 App Delegate)。我看到了这篇文章: 处理多个 NSTableView(s) 的最佳方法, 但所描述的方法仍然给我错误 - 特别是
方法“numberOfRowsInTableView:”的重复声明 方法“tableView:viewForTableColumn:row:”的重复声明
显然,编译器没有看到不同的方法声明是针对不同的表视图的。
AppDelegate.m 文件中 tableviews 的代码是
@synthesize tableView1;
@synthesize tableView2;
-(NSUInteger)numberOfRowsInTableView:(NSTableView *)tableView1
{
return 1;
}
-(NSUInteger)numberOfRowsInTableView:(NSTableView *)tableView2
{
return 2;
}
- (NSView *)tableView:(NSTableView *)tableView1 viewForTableColumn:(NSTableColumn *)tableColumn row:(NSInteger)row
{
NSTableCellView *resultForTable1 = [tableView1 makeViewWithIdentifier:tableColumn.identifier owner:self];
resultForTable1.textField.stringValue = @"This should appear in the first tableView";
return resultForTable1;
}
- (NSView *)tableView:(NSTableView *)tableView2 viewForTableColumn:(NSTableColumn *)tableColumn row:(NSInteger)row
{
NSTableCellView *resultForTable2 = [tableView2 makeViewWithIdentifier:tableColumn.identifier owner:self];
resultForTable2.textField.stringValue = @"This should appear in the second tableView";
return resultForTable2;
}
在我的 AppDelegate.h 文件中,我有:
@property (weak) IBOutlet NSTableView *tableView1;
@property (weak) IBOutlet NSTableView *tableView2;
我在这里做错了什么?