Отключить дублирование опции в расширении FileProvider - PullRequest
0 голосов
/ 21 ноября 2018

Как видно из названия, я пишу расширение для приложения "Файлы".В этом расширении доступ пользователей к некоторым узлам будет ограничен.Так, например, пользователь может иметь права на чтение и создание только на узле, то есть он не может ничего удалить внутри этого узла.Поэтому параметры перемещения и удаления должны быть недоступны.

Для реализации этого я динамически определяю NSFileProviderItemCapabilities для каждого NSFileProviderItem на основе концепции базовых разрешений.Это работало для каждой опции, кроме опции дублирования, которая, кажется, включена независимо от того, какие возможности я назначаю / не назначаю.

Поскольку у пользователя нет прав на создание узла, он, естественно, не может создать дубликат в этом месте.Ближайший NSFileProviderItemCapabilities, который я нашел, был .allowsAddingSubItems.

Пример: мы находимся в узле с именем «read» (пользователь имеет только права на чтение для этой комнаты), поэтому NSFileProviderItemCapabilities этой комнаты только.allowsContentEnumerating.«read» содержит папку «Random», которая также имеет только возможность .allowsContentEnumerating.Поскольку возможность .allowsDeleting не установлена, параметр удаления отображается серым цветом, а также, поскольку возможность .allowsReparenting не установлена, параметр перемещения отображается серым цветом.

Screenshot.

Однаковозможность .allowsAddingSubItems не установлена, но опция дублирования включена.

Документация Apple действительно здесь мало помогает: https://developer.apple.com/documentation/fileprovider/nsfileproviderextension/providing_support_for_user-driven_actions даже не упоминает дублирующуюся функциональность, котораяприложение Файлы предоставляет.Кроме того, по этой теме еще не так много материала.

Итак, вопрос сводится к следующему: Кто-нибудь знает, как отключить этот дубликат?

Заранее спасибо!

...