如果我有应用程序包的完整路径或该应用程序的NSBundle
实例,我如何获得该应用程序图标的NSImage
表示?
具体来说,我想为特定维度集获取最佳可用版本的图标。例如,如果应用程序图标的可用版本包含32x32,64x64和128x128维度,如果我请求96x96点,我将获得128x128版本。
这需要在视网膜和非视网膜显示器上工作,因此得到的NSImage
必须包括图标的视网膜和非视网膜表示。
我找到iconForFile:
的{{1}}方法,但遗憾的是它只返回了一个32x32像素的图标,因此对我的用途没用。
我还可以从其信息词典中读取包中的NSWorkspace
和CFBundleIconFile
键,然后从其icns文件或资产目录中提取正确的图像,但这似乎很多工作。我不知道从哪种文件类型获取图像从哪里开始。我希望有一种更简单的方法!
答案 0 :(得分:0)
我对iconForFile:
不正确。虽然它返回的NSImage确实将其大小报告为32x32,但它包含该应用程序的所有各种图标大小的图像表示,包括更大的图标大小。选择我想要的或使用bestRepresentationForRect:context:hints:
方法是一件简单的事情。