使用表单 swift UI 时,不会调用文件导入器/文件移动器方法

File importer/ File Mover methods are not getting invoked when using Form swift UI

即使 fileMover 中的绑定属性设置为 true。文件移动器没有被执行。下面是我使用的示例代码。任何线索都会有所帮助。 提前致谢。

var body: SomeView {
    
    Form {
        Section {
            HStack {
                //some view logic
            }.fileMover(isPresented: $viewModel.shouldStartFileExport,
                        file: viewModel.targetURL) { result in
                print("result")
            }
        }
    }
}
struct ViewModel {
    @State var shouldStartFileExport = false
    @State var targetURL: URL = //some URL
}

您不应该像以前那样在“struct ViewModel”中使用“@State”,它们用于视图。

改变变量的方法有很多种,这里我展示你可以使用“ObservableObject”,或者你可以简单地在视图中使用“@State”。

    class ViewModel: ObservableObject {
        @Published var shouldStartFileExport = false
        @Published var targetURL = URL(string: "somefileurl")!
    }
    
    struct ContentView: View {
    //    @State var shouldStartFileExport = false
    //    @State var targetURL = URL(string: "somefileurl")!
    @StateObject var viewModel = ViewModel()
    
    var body: some View {
        Form {
            Section {
                HStack {
                    Button("fileMover test") { viewModel.shouldStartFileExport = true }
                }
            }
        }
        .fileMover(isPresented: $viewModel.shouldStartFileExport, file: viewModel.targetURL) { result in
            print("\n-----> result <-----\n")
        }
    }
    
}