Запретить или отменить сохранение состояния приложения для MacOS SwiftUI Document Based App

Я разрабатываю приложение на основе MacOS Document с использованием SwitfUI на MacOS 12.0.1 с использованием Xcode 13.1 на MacbookPro M1 Pro. Я столкнулся с проблемой, заключающейся в том, что приложение всегда повторно открывает браузер документов в последнем использованном каталоге. Что нормально, когда он находится на Машине, но больно, если последний использованный был на сетевом диске. Я пытаюсь найти способ подавить этот режим работы «всегда восстанавливать с использованием последнего каталога».

Я пробовал использовать подход @NSApplicationDelegateAdaptor и реализовать;

        func applicationSupportsSecureRestorableState(_ app: NSApplication) -> Bool {
    print(#function + " returning false")
    return false
  }

в моем классе NSApplicationDelegate, который вызывается (хотя иногда кажется, что после появления диалогового окна), однако это не мешает приложению тайно запоминать последний каталог.

Кто-нибудь знает, где эта информация может быть скрыта или может быть скрыта?

Я искал, но не могу найти способ внедрения начального каталога в DocumentGroup в качестве возможного решения.

TIA Alan.

1 ответ

Хорошо, для тех, кто оказывается здесь в поисках похожей проблемы.

После того, как я немного покопался, я нашел ответ для себя: добавить

          UserDefaults.standard.removeObject(forKey: "NSNavLastRootDirectory")

в запуск приложения. Также было предложено сделать

      UserDefaults.standard.removeObject(forKey: "NSNavLastCurrentDirectory")

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

Другие вопросы по тегам