SwiftUI macOS工作表有时不会关闭

时间:2020-05-07 21:40:32

标签: macos swiftui

我已经实现了一张表格来编辑客户端的值。

按“确定”按钮后,通常可以编辑客户端并关闭工作表。但是,如果打开纸张的时间较长,则无法将其解开。什么也没发生,他们唯一的方法就是退出程序。

有人知道为什么有时会发生这种情况吗?

struct ContentView: View {
    @State private var showingEditClient = false
    var body: some View {
        VStack{
            HStack {
                Button(action: showEditClientSheet) {
                    Text("Edit Client")
                }
                .sheet(isPresented: $showingEditClient) {
                    EditClientSheet()
                }
            }
        }
        .frame(minWidth: 400, minHeight: 400)
    }

    func showEditClientSheet(){
        showingEditClient.toggle()
    }
}


struct EditClientSheet: View {
    @Environment(\.presentationMode) var presentationMode
    @State private var name = "Max"

    var body: some View {
         VStack {
            Form {
                TextField("Name", text: $name)
            }
            HStack{
                Button(action: cancel) {
                    Text("Abbrechen")
                }
                Button(action: editClient) {
                    Text("Ok")
                }
            }
        }
        .frame(minWidth: 200, minHeight: 200)
    }

func editClient() {
        NSApp.keyWindow?.makeFirstResponder(nil)
        //Check if content is correct to save
        if name != "" {
            //store the changes
            self.presentationMode.wrappedValue.dismiss()
        }else {
           //show Alert
        }
    }

    func cancel() {
        self.presentationMode.wrappedValue.dismiss()
    }
}

0 个答案:

没有答案