无法以编程方式将文件图标图像添加到Xib图像视图

时间:2019-01-24 22:10:45

标签: swift macos nscollectionview

我正在尝试将文件图标图像添加到xib图像视图中以进行collectionView。我只能使用在xib中更改的动态标签,但是图像根本没有显示。在这里,我们可以看到如何连接出口-文本字段,图像视图到对象标签集合视图项。 On the right you can see the outlets connected

Here you can see the image view.

因此,标签正确显示,但图像未正确显示。您可以在这里看到它。Image is not appearing anywhere

最后是代码。我需要的一切都在这部分代码中发生。您可以看到我如何动态更改标签,但是为什么我无法从我不知道的文件路径中获取文件图标。 filesList数组是某个目录中文件/文件夹路径的列表。

func collectionView(_ collectionView: NSCollectionView, numberOfItemsInSection section: Int) -> Int {
  return filesList.count
}

func collectionView(_ collectionView: NSCollectionView, itemForRepresentedObjectAt indexPath: IndexPath) -> NSCollectionViewItem {

  let cell = collectionView.makeItem(withIdentifier: "LabelCollectionViewItem",for: indexPath)

    for i in 0..<filesList.count {
      let test = filesList[i]

      let fileIcon = NSWorkspace.shared().icon(forFile: test.path)
      print(test)

      cell.textField?.stringValue = "test"

      cell.imageView?.image =  fileIcon

    }

    return cell

}

感谢帮助!

2 个答案:

答案 0 :(得分:0)

cell.imageView?.image = fileIcon行上设置一个断点,然后运行您的项目。 达到断点后,请检查对象的值以查看它们是否为零或是否获得了错误的值。有什么事吗cell.imageView为nil,test.path错误,fileIcon为nil,等等。这也可能是沙箱问题(请参阅控制台以了解违规警告)。

您可以在“变量视图”中检查变量值,也可以在Xcode控制台中在断点处停止时键入类似po fileIcon的形式。

答案 1 :(得分:0)

我发现了问题。问题是笔尖文件中的imageView不在实际的笔尖可见屏幕之外,因此当我运行该应用程序时它没有出现。感谢您的帮助!