我对自定义NSTableCellView
有一点问题。
问题:我在Nib中有一个表视图,其中配置了所有内容以从数组加载数据。现在,没关系。问题是,当应用程序正在准备视图时(使用方法(id)tableView:(NSTableView *)tableView objectValueForTableColumn:(NSTableColumn *)tableColumn row:(NSInteger)row
),返回的视图会根据我的需要进行修改(在返回之前由断点监视),但是我可以看到的视图,每个人都可以看到,未被修改。
我希望你能帮我找到问题所在。我给你一些东西来帮助理解我的问题。
部分图片
返回之前单元格,如您所见,视图也被修改。
在表视图中显示的单元格,在这种情况下,自定义视图未被修改,它看起来像我没有修改任何东西
代码
我的自定义NSTableCellView
,只有标题...
@interface playlistQueueItemView : NSTableCellView
@property (weak) IBOutlet NSButton *button;
@property (strong) IBOutlet NSTextField *title;
@property (strong) IBOutlet NSTextField *artist;
- (void)setAllFromInitWithTitle:(NSString*)title artist:(NSString*)artist;
@end
为表创建视图的方法:
- (id)tableView:(NSTableView *)tableView objectValueForTableColumn:(NSTableColumn *)tableColumn row:(NSInteger)row {
playlistQueueItemView *cell = [tableView makeViewWithIdentifier:tableColumn.identifier owner:self];
NSDictionary* song = [[PlaylistQueue getQueue] getSongWithPos:(int) row];
cell.artist.stringValue = song[@"artista"];
cell.title.stringValue = song[@"titulo"];
return cell;
}
还有一件事,我关注了一个名为TableViewPlayground的Apple示例项目。
谢谢:D
答案 0 :(得分:1)
您必须覆盖- (NSView *)tableView:(NSTableView *)tableView viewForTableColumn:(NSTableColumn *)tableColumn row:(NSInteger)row
,然后返回视图。
在- (id)tableView:(NSTableView *)tableView objectValueForTableColumn:(NSTableColumn *)tableColumn row:(NSInteger)row
中,您可以返回具有您想要填充的值的模型对象。