Запретить или отменить сохранение состояния приложения для 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")
Тем не менее, простое выполнение первого действия приводит к подавлению диалогового окна открытия файла, выполнение обоих приводит к тому, что диалоговое окно открытия файла открывается с пользовательским каталогом документов.