我试图在tableview中显示图像单元,但程序崩溃..
这是我的imageCell类:
@interface ImageCell : NSTextFieldCell {
NSImage *imageIcon;
NSString *labelStr;
}
@property (retain) NSImage *imageIcon;
@property (retain) NSString *labelStr;
- (id) initWithLabel:(NSString *) labelString imageName:(NSString *) imageString;
程序运行时,它崩溃并显示错误消息:
-[NSTextFieldCell labelStr]: unrecognized selector sent to instance 0x10011f160
但我已经提供了自己的imageCell类......
有什么我做错了,谢谢!
这是我的tableview委托&数据源:
- (void) awakeFromNib {
self.list = [[NSMutableArray alloc] init];
[self.list addObject:[[ImageCell alloc] initWithLabel:@"Library" imageName:@"album.tiff"]];
// set first cell here
NSTableColumn *col = [[self.tableView tableColumns] objectAtIndex:0];
[col setDataCell:[list objectAtIndex:0]];
}
- (NSInteger)numberOfRowsInTableView:(NSTableView *)pTableView {
return [self.list count];
}
- (id)tableView:(NSTableView *)pTableView objectValueForTableColumn:(NSTableColumn *)pTableColumn row:(int)pRow {
ImageCell *imageCell = (ImageCell *)[self.list objectAtIndex:pRow];
return imageCell.labelStr;
}
- (void)tableView:(NSTableView *)tableView willDisplayCell:(id)cell
forTableColumn:(NSTableColumn *)tableColumn
row:(NSInteger)pRow {
ImageCell *imageCell = (ImageCell *)cell;
imageCell.image = [[self.list objectAtIndex:pRow] imageIcon];
[imageCell setTitle:imageCell.labelStr];
}
答案 0 :(得分:1)
文档未指定-tableColumns返回的表列具有任何特定顺序的任何保证。尝试询问-tableColumnWithIdentifier :(并确保您的表列具有在nib中指定的标识符)。