首页 > 解决方案 > 如何为 Mac 上的任何应用程序获取高分辨率的应用程序图标?

问题描述

Apple 文档指定NSWorkspace icon(forFile:)返回 32x32 图标,但我不确定如何指定不同的大小。

这是我用来显示 XCode 图标的示例 SwiftUI 代码:

Image(
  nsImage: NSWorkspace.shared.icon(forFile: "/Applications/XCode.app/")
).renderingMode(.original)

标签: swiftmacosappkitnsworkspace

解决方案


我发现的一种方法是使用bestRepresentation. 您应该传入您希望图像所在的尺寸(例如 1024x1024),它会为您找到该尺寸的最佳表示。

if let rep = NSWorkspace.shared.icon(forFile: "/Applications/XCode.app/")
    .bestRepresentation(for: NSRect(x: 0, y: 0, width: 1024, height: 1024), context: nil, hints: nil) {

}

然后你可以只draw使用它NSImageRep,或者创建一个NSImage使用它:

let image = NSImage(size: rep.size)
image.addRepresentation(rep)

推荐阅读