2010-03-05 71 views
0

插入图像到NSTableView的我已经绑定到一个NSArrayController的两列一个NSTableView。一列被绑定到阵列控制器的排列对象并显示一个字符串。使用绑定

我想在其他列中显示的图像,但我不能让它工作。我已经将NSImageCell拖动到列并手动设置图像,但它不会在运行时显示。我已经检查过了,图像位于我的资源目录中。

我错过了什么吗?我还应该做些什么来使图像出现?

回答

2

所以,你想有相同的图像显示的每一行?这就是你为什么“手动”设置它的原因吗?为此,您可以将NSTableViewDataSource方法与绑定混合。这个想法是你的字符串列将像往常一样绑定,但你的图像列没有绑定。它有它的标识符集(如“imageColumn”)。然后使用numberOfRowsInTableView:和tableView:objectValueForTableColumn:row:提供数组控制器的对象计数(因此它具有正确的行数),并且在请求右列的值时总是返回静态图像(检查id为你的“imageColumn”),否则返回零。

如果图像是不是静态的(也就是说,你想用它作为某种类型的指标),你可以用上面的方法(返回基于某个值的一些图像)或绑定。要使用绑定,您可以将属性添加到阵列控制器所持有的任何类,如“状态”(一个数字)。然后,您将使用自定义NSValueTransformer将状态编号转换为相应的图像。你列将使用值变压器( - 你必须注册,然后使用它的名字就能看出NSValueTransformer。使用说明)绑定到阵列控制器的arrangedObjects.status。结果是列中的图像与特定状态相对应。