У меня возникла проблема с обновляемым списком в моем приложении. Эта проблема возникла совсем недавно после перехода на Xcode 15 + Sonoma + iOS 17 и не возникала в Xcode 14 + Ventura + iOS16.
Позвольте мне показать вам, что меня беспокоит. Посмотрите на этот простой список.

Теперь давайте проведем вниз и откроем импортер файлов, чтобы выбрать файл и выполнить некоторые действия (я отредактировал изображение, чтобы скрыть имена файлов). На этом рисунке показан импортер файлов:

Это происходит после выбора файла. Видите этот «индикатор прогресса»? Думаю, это от обновляющего действия, однако оно не исчезает. Он будет оставаться там на неопределенный срок, пока вы не начнете листать список.

Я почти уверен, что этот «индикатор прогресса» не остался там и исчез при использовании Xcode 14 + Ventura + iOS16.
Это только у меня или у кого-нибудь есть такая же проблема с Xcode 15 + Sonoma + iOS 17?
Вот код, который я использовал, если вы хотите опробовать его самостоятельно.
Вот ContentView со списком:
// // ContentView.swift // Отладка проблемы // импортировать SwiftUI структура ContentView: Просмотр { @State var fileImporterVisible: Bool = false var body: some View { Список { Text("Это обновляемый список. Проведите пальцем вниз!") Text("Посмотрим, что будет...") } // ОБНОВЛЯЕМЫЙ .refreshable(действие: { fileImporterVisible.toggle() }) // ПОКАЗАТЬ ЛИСТ, КОГДА fileImporterVisible ПЕРЕКЛЮЧЕН .sheet(isPresented: $fileImporterVisible, содержимое: { ViewFileImporter (fileImporterVisible: $fileImporterVisible) }) } } #Предварительный просмотр { КонтентПросмотр() } А вот вид с импортером файлов:
// // ViewFileImporter.swift // Отладка проблемы // импортировать SwiftUI структура ViewFileImporter: Просмотр { @Binding var fileImporterVisible: Bool var body: some View { ZStack { // СДЕЛАЙ ЧТО-НИБУДЬ ... } .fileImporter(isPresented: $fileImporterVisible, AllowContentTypes: [.plainText, .pdf], onCompletion: { результат результат переключения { случай .success(пусть spxFileImporterURL): если spxFileImporterURL.startAccessingSecurityScopedResource() { печать (spxFileImporterURL.absoluteString) } еще { spxFileImporterURL.stopAccessingSecurityScopedResource() } случай .failure(пусть spxFileImporterError): печать (spxFileImporterError.localizedDescription) } }) } } #Предварительный просмотр { ViewFileImporter(fileImporterVisible: .constant(false)) }