【问题标题】:Loading images from xcassets into NSImage将图像从 xcassets 加载到 NSImage
【发布时间】:2021-02-11 09:39:56
【问题描述】:

在 macOS Big Sur 上的 Xcode 12.4 中,我正在开发在 macOS 10.12 及更高版本上运行的第三方应用程序的 Objective-C 插件。我想从资产目录加载图像。

我已将abc.xcassets 添加到项目树中,添加了几个 PDF 图像。其中一张图片名为test

我想将test 图像显示为警报图标。为此,我试图将图像加载到主插件类中的NSImage 实例中。我已经尝试了所有找到的替代方案,但我仍然得到nil 而不是图像。

+ (void)initialize {
    NSImage *test1 = [NSImage imageNamed:@"test"];
    NSImage *test2 = [NSImage imageNamed:@"test" bundleForClass:[self class]];
    NSBundle *testBundle = [NSBundle bundleForClass:[self class]];
    NSImage *test3 = [[NSImage alloc] initWithContentsOfFile:
                        [testBundle pathForImageResource:@"test"]];

    // Later used in
    // [alert setIcon:test1];
}

但是,运行此代码后,所有test1test2test3 都是nil。我错过了什么?怎么做才合适?

PS:test 图像由 Xcode 的 UI 构建器列出以在按钮的 Image 属性中选择。

【问题讨论】:

    标签: objective-c macos


    【解决方案1】:

    这行得通:

    [testBundle imageForResource:@"test"]
    

    【讨论】:

      猜你喜欢
      • 2014-11-14
      • 2017-10-08
      • 2021-08-29
      • 2015-12-26
      • 2020-06-04
      • 2016-08-15
      • 2013-11-04
      • 2016-06-16
      • 1970-01-01
      相关资源
      最近更新 更多