【问题标题】:How to load an image from "Images.xcassets" into an NSImage*?如何将图像从“Images.xcassets”加载到 NSImage* 中?
【发布时间】:2014-11-14 15:33:21
【问题描述】:

不确定如何指定图像的路径。

我已将 png 添加到名为“StatusBarIcon”的新图像中,该图像位于“Images.xcassets”资源文件夹中。

我看到他们放了一个 json 文件,什么没有。

尝试按照那里的示例进行操作,但无论我尝试什么,我总是得到 nil 作为[NSImage imageNamed:@"name of paths attempted here"] 的输出

也不会使用完整路径加载,我想该方法正在寻找图像的名称,但我不知道如何正确指定名称,或者我需要其他方法?

这是我的代码和项目的屏幕截图。

【问题讨论】:

    标签: objective-c cocoa


    【解决方案1】:

    确保您已将项目设置为使用 xcassets 而不仅仅是单个资源文件。在 xcasset 中创建图像后,您应该只指定图像的名称,而不是路径。例如[NSImage imageNamed:@"StatusBarIcon"]

    【讨论】:

    • 尽量不问这个问题,但是您如何确保项目配置为使用 xcassets?是不是通过让“Images.xcassets”类型“默认 - 资产目录”和“相对于组”的位置在谷歌上找不到任何关于此的内容。
    • 把你自己的图片放在那个文件夹里?你为什么要这样做?此外,您使用的是什么版本的 Xcode? Xcode 6?
    • 我使用 XCode 的用户界面拖动它们(没有使用 Finder 进行,也没有使用命令行)。是的,我使用的是 XCode 6。我在上面放了一张截图(第二张),说明图像在 UI 中的显示方式,我将它拖放到空白插槽/占位符的顶部,并将其命名为“StatusBarIcon”
    • @Gubatron 是的。如果你去项目设置,你应该能够看到你的目标。选择您正在开发的应用程序目标,然后选择常规。在“应用图标”部分,您看到了什么?
    • @contractritsard 我看到“来源:AppIcon”
    【解决方案2】:

    要从当前捆绑包的资产目录加载,请使用以下内容:

    let image = Bundle(for: type(of: self)).image(forResource: NSImage.Name(“logo"))!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-06-27
      • 1970-01-01
      • 1970-01-01
      • 2016-05-25
      • 2011-02-10
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多