Предотвращение или очистка сохранения состояния приложения для приложения на основе документов macOS SwiftUI

0

Вопрос

Я разрабатываю приложение на основе документов macOS, используя 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 macos swiftui
2021-11-24 05:51:07
1

Лучший ответ

0

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

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

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

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

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

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

2021-11-26 23:48:27

На других языках

Эта страница на других языках

Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................