【问题标题】:How to integrate Finder Sync Extensions with Xcode in Cocoa如何在 Cocoa 中将 Finder Sync Extensions 与 Xcode 集成
【发布时间】:2015-06-12 02:53:26
【问题描述】:

我想像 Dropbox 一样使用 Finder Sync Extensions,比如在 Xcode 中使用 Objective C 进行同步时添加工具栏图标和更新徽章图标。
我在谷歌搜索了很多,但我找不到任何与此相关的示例代码。

我只找到了一个链接Finder Sync.

但我想知道将 Finder Sync Extension 集成为示例或代码的示例过程,以便进一步理解。

谢谢你的建议!!

【问题讨论】:

  • @Sheen Vempeny;你的帖子就是答案;照这样发布,我会投票赞成。 ;-)
  • Finder Sync 链接只是一种痛苦。你做了所有提到的步骤,没有任何效果!!!请提供一些更好的步骤来实现这一点...

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


【解决方案1】:

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

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

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

我希望这些信息对您的代码有所帮助。

【讨论】:

    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-02-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多