我正在制作一个简单的桌面视图,我在这里感到非常难过。表格视图单元格未从tableView:objectValueForTableColumn:row:
方法获取数据。
我应该得到这样的东西:
但得到这样的东西:
这是tableController类的 和 数组中的对象正在正确获取NSlog。但不知怎的,它们没有反映在tableView中。 以下内容可能会进一步提供更多信息... @interface TableController : NSObject <NSTableViewDataSource, NSTableViewDelegate>
@property (nonatomic, strong) NSArray *numbers;
@property (nonatomic, strong) NSArray *numberCodes;
@end
#import "tableController.h"
@implementation tableController
#pragma mark - Custom Initialisers
- (NSArray *)numbers {
if (!_numbers) {
_numbers = @[@"1", @"2", @"3", @"4", @"5", @"6", @"7", @"8", @"9", @"10"];
}
return _numbers;
}
- (NSArray *)numberCodes {
if (!_numberCodes) {
_numberCodes = @[@"One", @"Two", @"Three", @"Four", @"Five", @"Six", @"Seven", @"Eight", @"Nine", @"Ten"];
}
return _numberCodes;
}
-(NSInteger) numberOfRowsInTableView:(NSTableView *)tableView{
NSLog(@"What Ho tally!");
return self.numbers.count;
}
-(id) tableView:(NSTableView *)tableView ObjectValueForTableColumn:(NSTableColumn *)tableColumn row:(NSInteger)row{
if ([tableColumn.identifier isEqualToString:@"numbers"]) {
NSLog(@"%@", [self.numbers objectAtIndex:row]);
// first colum (numbers)
return [self.numbers objectAtIndex:row];
} else {
NSLog(@"%@", [self.numberCodes objectAtIndex:row]);
// second column (numberCodes)
return [self.numberCodes objectAtIndex:row];
}
}
@end
答案 0 :(得分:0)
我认为你需要使用tableView:setObjectValue:forTableColumn:row:
代替-(id) tableView:(NSTableView *)tableView ObjectValueForTableColumn:(NSTableColumn *)tableColumn row:(NSInteger)row{
,不是吗?
编辑:
事实上,在您的项目中,您需要将表格视图设置为&#34; Cell Based&#34;内容模式而不是&#34;基于视图&#34;模式,它的工作原理!
答案 1 :(得分:0)
NSTableView应该只为一个主服务器提供服务。你可以有一个包含两个属性的类,例如number和numberCode,并使用该类对象的数组来填充具有这些属性的列。还要确保激活文本字段 - 表格视图单元格的值绑定。