Kri*_*oks 1 cocoa objective-c nsimage nstableview
每当我这样做:
xxx = [NSImage imageNamed:@"Package.png"];
Run Code Online (Sandbox Code Playgroud)
xxx加载,但它的宽度和高度保持为0.每当我尝试将其加载到NSImageCell时,我收到此错误:
NSImageCell的对象值必须是NSImage.
有人可以帮我吗?我以前从未遇到过这个问题.
编辑:对不起,我错过了这一点.因此,当我在数据源委托中执行它时,它不起作用,它在' 返回单元格后显示上述错误; ".
NSImageCell* cell = [[NSImageCell alloc] init];
[cell setObjectValue:xxx]; // Using imageNamed doesn't help either
Run Code Online (Sandbox Code Playgroud)
编辑2:这变得更加恶化.我不明白发生了什么但是图像正确地加载了高度和宽度,但是当我将它添加到NSImageCell时它仍然会抱怨.

我明白了 - 所以表视图方面毕竟是相关的.
作为数据源,您的工作是返回(并在用户编辑的情况下接收列中单元格的对象值).
但你没有回报这样的价值; 你回来了一个牢房.因此,您尝试将图像单元格(由数据源创建)设置为图像单元格(列所拥有的现有单元格)的值.
日志消息表明您在创建列时已将列的单元格设置为图像单元格,因此您现在需要做的就是更改数据源以始终返回列的对象值,而不是单元格.对于图像列,返回图像.对于文本列,返回字符串.
请注意,NSTableView不像UITableView那样工作,其中UITableViewCells是UIViews,并且屏幕上的行数与单元格一样多; 在NSTableView中,每个NSTableColumn 只获取一个数据单元,并且该单元用于绘制每一行的该列.单元格绘制其提供给单元格的对象值,您可以通过从数据源方法返回它(对象值)来执行此操作.
有关控件的文档(NSTableView是一种NSControl)及其单元格是Control and Cell Programming Guide.
| 归档时间: |
|
| 查看次数: |
2736 次 |
| 最近记录: |