向Finder工具栏添加按钮?

时间:2011-12-05 02:59:02

标签: macos cocoa dropbox finder nstoolbar

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主持。如果有人有这方面的说明,请告诉我!

4 个答案:

答案 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创建了“新文本文件”和“新终端图标”:

enter image description here

可以找到方法here

缺点是它们必须是方形的,没有动画/菜单或显示在“自定义工具栏”等中。