代码之家  ›  专栏  ›  技术社区  ›  ruipacheco

使用绑定将图像插入到InstableView中

  •  0
  • ruipacheco  · 技术社区  · 14 年前

    我有一个InstableView绑定到一个具有两列的NSarrayController。一列绑定到数组控制器的排列对象,并显示一个字符串。

    我想在另一列中显示一个图像,但我就是做不到。我已经将nsImageCell拖到列中并手动设置了图像,但它不会在运行时显示。我已经检查过了,图像在我的资源目录中。

    我错过什么了吗?我还应该怎么做才能让图像出现?

    1 回复  |  直到 14 年前
        1
  •  2
  •   Joshua Nozzi    14 年前

    所以您想让每一行显示相同的图像?这就是你“用手”设置的原因吗?为此,可以将InstableViewDataSource方法与绑定混合使用。想法是字符串列将像往常一样绑定,但图像列没有绑定。它有自己的标识符集(如“imagecolumn”)。然后,使用numberofRowIntableView:和tableView:objectValueforTableColumn:Row:提供数组控制器的对象计数(这样它具有正确的行数),并在它请求正确列的值(检查“ImageColumn”的ID)时总是返回静态图像,否则返回nil。

    如果图像不是静态的(即,您希望将其用作某种指示器),则可以使用上面的方法(返回一些基于图像的值)或绑定。要使用绑定,可以将属性添加到数组控制器所持有的任何类中,例如“状态”(数字)。然后,您将使用一个自定义nsValueTransformer,将状态号转换为相应的图像。您的列将使用值转换器绑定到数组控制器的arrangedObjects.status(有关使用说明,请参阅nsvaluetransformer-您必须注册它,然后使用它的名称)。结果是列中对应于特定状态的图像。