在10.5中,我们对上下文菜单插件有本机支持。这允许我们在运行时添加项目,并为不同的文件类型添加不同的菜单。
但是从10.6及更高版本开始,我们有了不允许使用subMenus的上下文菜单服务,如果我们想根据位置的文件类型在运行时在上下文菜单中添加不同的项目,则无法提供帮助。
这导致我对Finder进行了一些代码注入(就像DropBox已经完成的那样),但我对这个特殊任务有点新意,但我愿意这样做。是否有人可以给我一个起点。
感谢您的期待。
答案 0 :(得分:5)
您可以从mach_star开始。 mach_star是一个开源代码套件,用于以非常低的级别抑制,替换和/或扩展Mac OS X功能。它的主要组件是mach_override(在运行时替换和/或扩展现有函数)和mach_inject(将代码动态加载到正在运行的进程中)。
答案 1 :(得分:2)
直到OS X 10.9.x,只通过mach_inject向Finder流程注入代码是一个解决方案(甚至Dropbox也是如此)。然而,自10.10以来,有Finder插件,可以自定义上下文菜单,向工具栏添加按钮,并在文件图标上添加叠加。
更新:由于系统完整性保护,OS X 10.11代码注入完全不起作用。所以只有Finder Sync插件。