objective-c - 将图像从 xcassets 加载到 NSImage
问题描述
在 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
属性中选择。
解决方案
这有效:
[testBundle imageForResource:@"test"]
推荐阅读
- javascript - 过滤嵌套在一个衬里中的另一个数组中的数组
- python-3.x - 为什么我的 App Engine 应用达到 Stackdriver Logging 256KB 限制?
- objective-c - 从 MediaPlayer.framework 私有框架获取 MRMediaRemoteSendCommandToApp 的方法签名
- java - JWT 字符串必须恰好包含 2 个句点字符。找到:1(JAVA)
- java - 在整个程序中修改整数值
- javascript - 针对特定容易猜到的模式的正则表达式验证
- c# - 统一网络 | ClientRpc 在错误的播放器对象上被调用
- python - 根据Django中的数据授予权限
- python - 为什么 anaconda install 在使用 conda-forge 时会返回不同的结果?
- json - 通过 ajax post 发送大型 JSON 对象字符串