如何在finder中添加图标叠加?

时间:2011-11-03 06:43:49

标签: objective-c cocoa macos-carbon finder

当我们打开Dropbox文件夹时,我们可以看到文件夹左下角的图标。

enter image description here

我正在开发一个应用程序,其中我也想要相同的行为。如果文件夹正在同步,那么它将显示同步图标,而对于其他操作,它将显示其他图标。在Finder中查看时标记的文件/文件夹必须显示自定义图标。但是当它们被选中进行预览时(使用空格键),它们必须显示其原始图标(即文件夹的蓝色图标等)。

enter image description here
有人可以帮帮我吗?谢谢:))

4 个答案:

答案 0 :(得分:7)

从Yosemite(10.10)开始,现在有一种官方支持(因此可以兼容Mac App Store)的方法,可以Finder Sync extensions的形式在Finder图标中显示同步状态标记。

答案 1 :(得分:5)

Dropbox开发了一个NSPlugin,用于在每个文件夹/文件上显示图标徽章。正如您所知,从Snow Leopard开始,Apple已弃用NSPlugins for Finder。我认为Dropbox通过hack解决了这个问题 - 重新启用了插件支持。我不认为苹果会喜欢这样。 Apple希望第三方应用程序仅提供服务支持,因为他们在Finder的流程中不需要任何第三方代码,但服务却没有给人留下深刻印象。

答案 2 :(得分:1)

除了其他答案中提到的 Finder Sync Extension 之外,文件上的徽章(和其他元数据)还可以通过 File Provider API 来实现:

<块引用>

文件提供者

其他应用用来访问由您的应用管理并与远程存储同步的文件和文件夹的扩展程序。

https://developer.apple.com/documentation/fileprovider

具体来说,NSFileProviderItemDecorating 类:

<块引用>

徽章
系统会在项目图标的顶部显示徽章图像。它只显示第一个徽章图像。

<块引用>

文件夹徽章
仅适用于文件夹项目。系统将图像压印在文件夹图标上。它只显示第一个 FolderBadge 图像。

答案 3 :(得分:0)

这可以通过创建新的Finder Sync Extension来实现。在此处查找更多信息:https://stackoverflow.com/a/43183393