【发布时间】: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];
}
但是,运行此代码后,所有test1、test2 和test3 都是nil。我错过了什么?怎么做才合适?
PS:test 图像由 Xcode 的 UI 构建器列出以在按钮的 Image 属性中选择。
【问题讨论】:
标签: objective-c macos