swift - 如何为 Mac 上的任何应用程序获取高分辨率的应用程序图标?
问题描述
Apple 文档指定NSWorkspace icon(forFile:)返回 32x32 图标,但我不确定如何指定不同的大小。
这是我用来显示 XCode 图标的示例 SwiftUI 代码:
Image(
nsImage: NSWorkspace.shared.icon(forFile: "/Applications/XCode.app/")
).renderingMode(.original)
解决方案
我发现的一种方法是使用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)
推荐阅读
- java - SpringBoot 应用程序不自动装配字段
- c# - 将数据加载到数据表中时出现内存异常
- angular - 使用角度编译器处理文件时 Meteor 构建失败:createCompilerHost 不是函数
- group-by - 按分组字段的大查询顺序
- java - 尝试从 MQ 读取消息时始终收到空消息
- maven - 在 pom 中传递标签与 cucumber-jvm-parallel-plugin 的 maven 属性时的不同结果
- sql - SQL Server 2016 在仅限于 where 语句时获得不同的结果
- ios - Ipa - 资格问题
- c# - .NET 中的多目标,但没有“TargetFramework”标签
- c# - 亚马逊 AWS C# Lambda 代码管道