我有一个绑定到有两列的NSArrayController的NSTableView。一列绑定到数组控制器的排列对象,并显示一个字符串。
我想在另一列中显示一个图像,但是我就是不能让它工作。我已经将一个NSImageCell拖到列中并手动设置了图像,但它在运行时不会显示。我仔细检查过了,图片在我的资源目录中。
我是不是遗漏了什么?我还应该做些什么才能让这个图像出现?
发布于 2010-03-05 20:04:47
所以您想让每一行都显示相同的图像?这就是你“手动”设置它的原因吗?为此,您可以将NSTableViewDataSource方法与绑定混合使用。这个想法是,您的字符串列将像往常一样绑定,但您的图像列没有绑定。它设置了自己的标识符(如"imageColumn")。然后使用numberOfRowsInTableView:和tableView:objectValueForTableColumn:row:来提供数组控制器的对象计数(这样它就有了正确的行数),并且总是在请求正确列的值时返回静态图像(检查id中的"imageColumn"),否则返回nil。
如果图像不是静态的(也就是说,您希望将其用作某种指示器),则可以使用上面的方法(根据某个值返回一些图像)或绑定。要使用绑定,您可以向数组控制器持有的任何类添加一个属性,如"status“(一个数字)。然后,您将使用一个自定义NSValueTransformer将状态号转换为相应的图像。您的列将使用值转换器绑定到数组控制器的arrangedObjects.status (有关使用说明,请参阅NSValueTransformer -您必须注册它,然后使用它的名称)。结果是列中的图像对应于某个状态。
https://stackoverflow.com/questions/2386463
复制相似问题