gpt4 book ai didi

objective-c - 使用绑定(bind)将图像插入 NSTableView

转载 作者:行者123 更新时间:2023-12-03 17:45:07 25 4
gpt4 key购买 nike

我有一个 NSTableView 绑定(bind)到一个具有两列的 NSArrayController 。一列绑定(bind)到阵列 Controller 的排列对象并显示一个字符串。

我想在另一列中显示图像,但我无法使其工作。我已将 NSImageCell 拖到列中并手动设置图像,但它不会在运行时显示。我已经仔细检查过,图像位于我的资源目录中。

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

最佳答案

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

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

关于objective-c - 使用绑定(bind)将图像插入 NSTableView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2386463/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com