Dropbox可以选择向Finder工具栏添加按钮。它甚至出现在“自定义工具栏...”窗口中。 我找不到任何关于如何完成此类事情的文档....有谁知道如何做到这一点,或者任何人都可以指向我一些文档或示例代码?
编辑一:
我想一开始就是找到现有图标的位置以及任何相关代码。
我注意到Dropbox在Library / DropboxHelperTools / Dropbox_u501中有一些名为mach_inject_bundle_stub.bundle和FinderLoadBundle的文件可能正在发挥作用。 Dropbox还在Finder图标上添加了“tick”徽章。可能涉及此代码:github.com/rentzsch/mach_star
编辑二: Rian Hunter关于这个过程的Dropbox讲座就在这里,大约15:30 http://blip.tv/pycon-us-videos-2009-2010-2011/pycon-2011-how-dropbox-did-it-and-how-python-helped-4896698
查看Dropbox_u501中的DropboxBundle文件会显示图标和一些已编译的代码。该代码表明Rian Hunter是作者:http://twitter.com/timeserena
Rian在他的github上有他自己的Mach Star代码版本 - https://github.com/rianhunter/mach_star - 它似乎更老了
编辑三次
几周前在斯坦福大学举办了“代码注射工作坊” - http://stanfordacm.com/past/ - 由Rian主持。如果有人有这方面的说明,请告诉我!
答案 0 :(得分:9)
您可以使用Finder Sync app extension(从OS X v10.10开始)。
Finder Sync扩展程序可以:
- 添加,删除和更新受监控文件夹中项目的徽章和标签。
- 当用户按住Control键单击受监控文件夹中的项目时,显示上下文菜单。
- 将自定义按钮添加到Finder工具栏。
答案 1 :(得分:8)
Dropbox使用的是无证魔法。没有官方支持的方法来做到这一点;没有逆向工程的最接近的是Services。
(更新:从macOS 10.11开始,Dropbox正在做的事情完全不再可行。系统完整性保护现在可以防止代码被注入到系统进程中,例如Finder。)
答案 2 :(得分:2)
Rian在PyCon 2011上的演讲(关于blip.tv)并没有解释任何比“我们逆向工程Finder”更多的内容。虽然mach_star的东西是有价值的,但它仍然没有解释如何使侧边栏图标工作。斯坦福大学的“Code Injection Workshop”尚未发布有关此方法的任何内容。
我已经为/ Library / DropboxHelperTools下的每个用户安装的Dropbox安装了两个捆绑包,并且输出提供了很好的洞察力。如果我回到它,我将完成我的研究并发布它。可能性是,它不会持续一段时间,所以希望这个推动有助于其他人。
答案 3 :(得分:0)
对于某些人来说,一个简单的中间答案就是简单地创建看起来像按钮的图标。
e.g。我在这里为我的Finder创建了“新文本文件”和“新终端图标”:
可以找到方法here。
缺点是它们必须是方形的,没有动画/菜单或显示在“自定义工具栏”等中。