如何在Cocoa中将Finder Sync Extensions与Xcode集成

时间:2015-04-07 13:25:55

标签: objective-c xcode cocoa findersync osx-extensions

我希望使用与Dropbox完全相同的Finder Sync Extensions,例如添加工具栏图标,并在使用Xcode中的Objective C同步时更新徽章图标。
我在谷歌搜索了很多,但我找不到任何与此相关的示例代码。

我发现Finder Sync.只有一个链接

但我想知道集成Finder Sync Extension作为示例或代码的示例程序,以便更加理解。

先谢谢!! !!

2 个答案:

答案 0 :(得分:5)

我是Seafile's Finder Sync Extension代码的作者。感谢您发布我的代码链接。自第一次发布以来,我已经改进了代码加班。

这种架构比窗户的简单得多。资源管理器扩展编程。首先,您需要告诉Finder(或FIFinderSyncController)您要观看哪些目录(通过设置directoryURLs),FIFinderSyncController将在用户访问时通过beginObservingDirectoryAtURL进行回调Finder中的目录。然后,如果在requestBadgeIdentifierForURL呼叫后第一次访问目录中的特定文件,则会使用requestBadgeIdentifierForURL回叫您。如果您想稍后更新徽章,则应记录此信息。最后,您可以通过setBadgeIdentifier在主队列中尽可能为文件设置徽章。

另一个重要的事情是,正如官方文档所说,扩展正在另一个进程中运行(来自Finder的线程或来自您的应用程序的线程)并通过XPC与Finder交谈。您可能需要通过某种IPC(例如XPC或mach端口)与您的扩展进行交互,因为扩展需要进行沙盒化。

我希望这些信息可以帮助您处理代码。

答案 1 :(得分:0)

Finder同步扩展程序提供对图标叠加的支持。您必须编写自己的代码以将文件与服务器和计算机同步,并且可以在Finder上显示同步状态,并具有finder同步扩展支持。请检查此链接,例如 - https://github.com/haiwen/seafile-client/blob/7d73ba314aedbd7a05428de649ce2a1cce37f676/fsplugin/FinderSync.mm