NsWorkspace iconForFile返回低质量的图像

时间:2013-05-14 13:22:12

标签: objective-c macos finder

我正在使用iconForFile:NSWorkspace类的选择器,但它返回的是低质量的图像。

谁能告诉我为什么会这样?是否有任何开关或标志可以说框架以不同的格式返回图像...

2 个答案:

答案 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
    }
}