【问题标题】:Cant add file icon image to xib image view programmatically无法以编程方式将文件图标图像添加到 xib 图像视图
【发布时间】:2019-06-18 17:54:27
【问题描述】:

我正在尝试将文件图标图像添加到 collectionView 的 xib 图像视图。我只能使用在 xib 中更改的动态标签,但图像根本没有显示出来。在这里,我们可以看到我如何连接插座 - 文本字段、图像视图到对象标签集合视图项。

因此,标签显示正确,但图像未正确显示。你可以在这里看到它。

最后是代码。我需要的一切都发生在这部分代码中。您可以看到我是如何动态更改标签的,但为什么我无法从文件路径获取文件图标我不知道。 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

}

感谢您的帮助!

【问题讨论】:

标签: swift macos nscollectionview


【解决方案1】:

cell.imageView?.image = fileIcon 行设置断点并运行您的项目。 一旦你到达断点,调查你的对象的值,看看它们是否为 nil 或者是否得到了错误的值。有什么问题? cell.imageView 为 nil,test.path 错误,fileIcon 为 nil 等。这也可能是沙盒问题(请参阅控制台以获取违规警告)。

您可以在“变量视图”中检查变量值,或者在断点处停止时在 Xcode 控制台中键入 po fileIcon 之类的内容。

【讨论】:

  • 您好,看起来变量值没有问题。它们都设置好了。沙盒模式已关闭。这里可以看到断点输出——imgur.com/a/OWpgzOo
【解决方案2】:

我找到了问题。问题是 nib 文件中的 imageView 在实际的 nib 可见屏幕之外,所以当我运行应用程序时它没有出现。感谢您的帮助!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-02
    • 1970-01-01
    • 1970-01-01
    • 2017-01-12
    • 2014-03-20
    • 2020-07-16
    相关资源
    最近更新 更多