Лист SwiftUI macOS иногда не закрывает - PullRequest
0 голосов
/ 08 мая 2020

Я реализовал лист для редактирования значений клиента.

Обычно можно отредактировать клиента и закрыть лист после нажатия кнопки OK. Но если лист открыт в течение более длительного времени, его невозможно закрыть. Ничего не происходит, и единственный способ продолжить - выйти из программы.

Кто-нибудь знает, почему это иногда случается?

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()
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...