我读了很多关于这方面的文章,但我不能让它工作,我有一个自定义的NSCell,下面的代码
#import "ServiceTableCell.h"
@implementation ServiceTableCell
-(void)drawWithFrame:(NSRect)cellFrame inView:(NSView *)controlView {
NSLog(@"I'm being called");
NSView *newview = [[NSView alloc] initWithFrame:cellFrame];
NSImage *image = [NSImage imageNamed:@"bg.png"];
NSRect imagesize;
NSImageView *IMV = [[NSImageView alloc] initWithFrame:imagesize];
[IMV setImage:image];
[newview addSubview:IMV];
[controlView addSubview:newview];
}这是我的NSTableView数据源:
- (long)numberOfRowsInTableView:(NSTableView *)tableView {
return 3;
}
- (id)tableView:(NSTableView *)tableView objectValueForTableColumn:(NSTableColumn *)tableColumn row:(long)row
{
return [[ServiceTableCell alloc] initTextCell:@"dd"];
}据我所知,抽屉..。在初始化单元格时被调用,但从未被调用过,那么,我错过了什么?
发布于 2011-05-23 06:42:00
方法tableView:objectValueForTableColumn:row:应该返回一个对象值,而不是一个单元格。
请注意,NSTableView与您可能熟悉的UITableView有很大不同。例如,数据源不返回填充了数据的单元格,而是返回数据。而且NSTableView中的单元格类型是按列设置的,您不能在一列中包含不同类型的单元格(从技术上讲,这并不完全正确,您可以通过-NSTableColumn dataCellForRow:拥有不同的单元格)。
发布于 2011-05-23 08:26:16
因此,感谢@puzzle和更深入的挖掘,答案是将我的NSCell的子类设置为InterfaceBuilder中的主单元格,然后该方法将被调用,正如他所说,在tableView:objectValueForTableColumn:row:我需要返回数据才能绘制它。
https://stackoverflow.com/questions/6091216
复制相似问题