正如标题所述,我正在编写“文件”应用扩展程序。在此扩展中,用户对某些节点的访问将受到限制。因此,例如,用户可能只在节点上具有读取和创建权限,这意味着他无法删除该节点内的任何内容。因此,移动和删除选项应显示为灰色。
要实现此目的,我根据基础权限概念为每个NSFileProviderItemCapabilities
动态定义了NSFileProviderItem
。
这适用于除重复选项以外的所有选项,无论我分配/不分配什么功能,该选项似乎都已启用。
由于用户没有节点上的创建权限,因此用户自然无法在该位置创建副本。我发现最接近的NSFileProviderItemCapabilities
是.allowsAddingSubItems
。
示例:我们位于名为“ read”的节点中(用户仅具有该房间的读取权限),因此该房间的NSFileProviderItemCapabilities
仅是.allowsContentEnumerating
。 “ read”包含一个文件夹“ Random”,该文件夹也仅具有.allowsContentEnumerating
功能。由于未设置.allowsDeleting
功能,因此删除选项显示为灰色;同样,由于未设置.allowsReparenting
功能,移动选项显示为灰色。
。
但是未设置.allowsAddingSubItems
功能,并且仍启用了重复选项。
Apple文档在这里确实没有多大帮助:https://developer.apple.com/documentation/fileprovider/nsfileproviderextension/providing_support_for_user-driven_actions甚至都没有提到“文件”应用程序提供的重复功能。 此外,关于此主题的材料还很少。
所以问题归结为:有人知道禁用此重复选项的方法吗?
谢谢!