Ste*_*erg 7 macos synchronization finder
我有一个Finder Sync Extension,它将根据本地数据库的状态在文件上显示徽章.在requestBadgeIdentifierForURL函数中查询此数据库非常简单,但是如果我希望徽章更改为已经可见的Finder项,如果该数据库的状态已更改(可以通过任何各种机制通知).文档(https://developer.apple.com/library/content/documentation/General/Conceptual/ExtensibilityPG/Finder.html)似乎暗示这可以通过以下声明:
您可能还希望跟踪这些URL,以便在状态发生变化时更新其徽章.
我能想象的唯一方法是可能的(而且大多数似乎是错误的)将是:
从另一个知道更改的应用程序调用setBadgeIdentifier:forURL
在我的扩展的init函数中启动一个线程,该线程侦听通知并在收到它们时调用setBadgeIdentifier:forURL
调用一些OS API,提示Finder应该通过requestBadgeIdentifierForURL触发扩展.
只有最后一个看起来可行,并且可以通过扩展来管理,通过beginObservingDirectoryAtURL/endObservingDirectoryAtURL回调通知外部资源需要刷新的内容,但我不知道哪种机制可以做到这一点.