每当我这样做:
xxx = [NSImage imageNamed:@"Package.png"];xxx加载,但其宽度和高度保持为0。每当我尝试将它加载到NSImageCell中时,就会得到以下错误:
NSImageCell的对象值必须是NSImage。
有人能帮我吗?我以前从没遇到过这个问题。
编辑:对不起,我错过了这一点。因此,当我在数据源委托中执行此操作时,它不起作用,并在“返回单元格;”之后显示上述错误。
NSImageCell* cell = [[NSImageCell alloc] init];
[cell setObjectValue:xxx]; // Using imageNamed doesn't help either编辑2:这正变得越来越严重。我不明白发生了什么,但是图像正确地加载高度和宽度,但是当我将它添加到NSImageCell时,它仍然会发出抱怨。

发布于 2010-08-19 06:38:49
我明白了-所以表视图方面毕竟是相关的。
作为数据源,您的工作是返回(在用户编辑的情况下)列中单元格的对象值。
但你不是在返回这样的值,而是返回一个单元格。因此,您试图将图像单元格(由数据源创建)设置为图像单元格(列拥有的现有单元格)的值。
日志消息表明,在创建列时,您已经将列的单元格设置为图像单元格,因此,现在所需要做的就是更改数据源,以始终返回列的对象值,而不是单元格。对于图像列,返回图像。对于文本列,返回字符串。
请注意,NSTableView的工作方式与UITableView不同,其中UITableViewCells是UIViews,屏幕上有与行相同的单元格;在NSTableView中,每个NSTableColumn只获得一个数据单元格,并且使用一个单元格来绘制每行的该列。单元格绘制其对象值,提供给单元格,通过从数据源方法中返回它(对象值)来完成此操作。
关于控件的文档( NSTableView是一种NSControl),它们的单元是控制和单元程序设计指南。
发布于 2010-08-18 22:13:04
我猜它将返回nil,在这种情况下,获得宽度/高度将返回0。
尝试:
xxx = [NSImage imageNamed:@"Package"]; // the extension is not needed on the desktop or iOS 4并确保图像实际上正在被复制到应用程序的参考资料文件夹中!
发布于 2010-08-19 04:51:01
在确定您实际上正在接收宽度和高度为零的NSImage实例(而不是nil)之后,下一步是确定发生这种情况的原因。
representations数组的输出是什么?(这应该包含在图像本身的描述中,但如果不是,我会显式地包含它。)https://stackoverflow.com/questions/3517123
复制相似问题