我正在使用iconForFile:NSWorkspace类的选择器,但它返回的是低质量的图像。
谁能告诉我为什么会这样?是否有任何开关或标志可以说框架以不同的格式返回图像...
答案 0 :(得分:4)
文档声明返回的图标大小为32x32,但您可以使用-[NSImage setSize:]
,它可能会加载更大的代表:
NSImage * iconImage = [[NSWorkspace sharedWorkspace] iconForFile:file];
[iconImage setSize:NSMakeSize(128, 128)];
您还可以使用图标服务(例如GetIconRefFromFileInfo
)或QuickLook(例如QLThumbnailImageCreate
)来获取较大尺寸的文件图标或预览图标。
答案 1 :(得分:0)
一个 Swift 扩展,可让您使用 Justin 的解决方案定义所需的高度(宽度)
extension NSWorkspace {
func icon(for url: URL, height: Int) -> NSImage {
let image = icon(forFile: url.path)
image.size = NSSize(width: height, height: height)
return image
}
}