macos - 为未在 OSX 查找器中显示的文件调用 setBadgeIdentifier:forURL: 是否安全?
问题描述
对于 OS X FIFinderSyncController,setBadgeIdentifier:forURL: 的文档说:
避免将徽章添加到 Finder 中未显示的项目。
如果为未在 Finder 中显示的项目调用它,是否有人知道它是否会导致任何问题?
finder 扩展需要做相当多的工作来跟踪 finder 看到的所有项目,然后只更新这些项目的徽章标识符。通知发现者更改任何徽章标识符并让发现者忽略呼叫(如果尚未看到)要简单得多。
我不打算在启动时为受监视文件夹中的所有项目调用 setBadgeIdentifier,而只是在发生某些事情时调用它,从而使徽章标识符发生变化。
解决方案
完整的报价是:
避免将徽章添加到 Finder 中未显示的项目。设置初始标记时,从 Finder Sync 扩展的 requestBadgeIdentifierForURL: 方法调用此方法。更新徽章时,仅对已收到徽章的项目调用此方法。
状态的文档requestBadgeIdentifierForURL:
:
每当新项目在 Finder 中可见时,重写此方法以接收通知。检查项目的状态,并设置适当的徽章。
因此,我相信“未在 Finder 中显示”建议意味着您应该使用requestBadgeIdentifierForURL:
Finder 中出现项目时的通知。否则请避免添加徽章。
推荐阅读
- python - 正则表达式千运算符,或者
- wsimport - 运行 wsimport 时出现错误“重复“消息”实体”
- c++ - 在 CUDA 中编译和链接多个文件
- .net - 如何从“netstandard”构建中排除“Settings.Designer.cs”?
- bootstrap-datetimepicker - Bootstrap datetimepicker 在用户选择之前填充日期字段
- python - 用到目前为止出现的次数替换字符串的每次出现
- javascript - Linux/PHP/JS:如何使用浏览器脚本在服务器上播放 mp3 音乐?
- xamarin - 带有 BlinkId OCR 图像结果的 Xamarin 表单
- java - 选择随机数组元素
- javascript - React Native - 如何选择图像然后发送到另一个屏幕