Проблема с песочницей рабочего стола в Swift macOS

В последнее время я пытался написать приложение для Mac и столкнулся с проблемой. Это не слишком важно, но было бы здорово иметь решение.

Мне нужно загрузить изображение во время выполнения, указанное пользователем (поэтому нет, я не могу встроить изображение в пакет, как предлагают многие альтернативы), и встроить его в NSTextView с помощью NSAttributedText. Изображение нормально загружается из каталога изображений (/Users/USERNAME/Pictures/IMAGE) и т. д., но не с рабочего стола. Я проверил вкладку «Возможности» в Xcode, и чтение и запись включены для всех доступных параметров: изображение

Используя FileManager, я определил, что файл определенно существует, но не читается. Могу ли я установить это вручную в файле прав?

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


person JkyCosten    schedule 12.07.2018    source источник


Ответы (1)


Нет, ты не можешь. Стандартный рабочий стол недоступен из коробки, если приложение изолировано. Только стандартные папки Downloads, Pictures, Music и Movies доступны с соответствующими правами.

Есть два варианта доступа к другим папкам, но во всех случаях пользователь должен выбрать их один раз.

  • Диалоговое окно «Открыть/Сохранить» для временного доступа, если установлено соответствующее право.
  • Закладка с областью безопасности для постоянного доступа, но и в этом случае пользователь должен сначала выбрать папку один раз в диалоговом окне «Открыть/Сохранить», а закладка с областью безопасности должна быть создана программно.
person vadian    schedule 12.07.2018
comment
Спасибо. Поскольку этот файл указан только по ссылке (я пишу средство визуализации MarkDown), панель открытия/сохранения недоступна. Но спасибо за помощь и быстрый ответ. - person JkyCosten; 13.07.2018