将 NSImages 链接到存储在字典中的 URL

Linking NSImages to a URL stored in a dictionary

我正在构建一个 MacOS 应用程序,允许用户从他们的计算机 select 图像文件,然后在通过 NSPopUpButton 调用时在 NSImageView 中显示图像文件。

当用户 select 使用图像时,其 URL 存储在具有 user-provided 键的 [String : URL] 中。 这些键被映射到一个数组,pop-up 菜单从中提取其标题。最后,字典被保存到应用程序的 plist 中。

打开后,应用程序会使用持久化数据填充字典(进而填充 NSPopUpButtons)。

问题是图像在重新打开后不显示,也不显示 return nil。它们只是空白。

我已经验证 URLs 仍然存在并且它们与相同的键相关联并且我没有移动文件(即,似乎字典确实在正确读取 plist 时loads) 此外,如果图像未通过 NSImageDelegate 的 imageDidNotDraw(_:) 方法加载,我添加了一个默认图像来显示。默认不显示。

很明显,有些东西我没有检查,但我很茫然。如果您有任何建议,我们将不胜感激。

我想通了。我没有向文件 URL 添加安全范围的书签。添加它们后,问题就解决了。