首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >NSCell中的NSView

NSCell中的NSView
EN

Stack Overflow用户
提问于 2011-05-23 06:22:42
回答 2查看 1.3K关注 0票数 0

我读了很多关于这方面的文章,但我不能让它工作,我有一个自定义的NSCell,下面的代码

代码语言:javascript
复制
#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数据源:

代码语言:javascript
复制
- (long)numberOfRowsInTableView:(NSTableView *)tableView {
    return 3;
}

- (id)tableView:(NSTableView *)tableView objectValueForTableColumn:(NSTableColumn *)tableColumn row:(long)row
{
    return [[ServiceTableCell alloc] initTextCell:@"dd"];
}

据我所知,抽屉..。在初始化单元格时被调用,但从未被调用过,那么,我错过了什么?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-05-23 06:42:00

方法tableView:objectValueForTableColumn:row:应该返回一个对象值,而不是一个单元格。

请注意,NSTableView与您可能熟悉的UITableView有很大不同。例如,数据源不返回填充了数据的单元格,而是返回数据。而且NSTableView中的单元格类型是按列设置的,您不能在一列中包含不同类型的单元格(从技术上讲,这并不完全正确,您可以通过-NSTableColumn dataCellForRow:拥有不同的单元格)。

票数 0
EN

Stack Overflow用户

发布于 2011-05-23 08:26:16

因此,感谢@puzzle和更深入的挖掘,答案是将我的NSCell的子类设置为InterfaceBuilder中的主单元格,然后该方法将被调用,正如他所说,在tableView:objectValueForTableColumn:row:我需要返回数据才能绘制它。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6091216

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档