【发布时间】:2023-01-28 03:42:05
【问题描述】:
请帮助我摆脱这个问题:
重现我的问题的步骤:
-
点击“编辑我的名字”按钮
-
在 .sheet 中,点击 TextField,然后在仍然显示键盘的情况下,一直向下滚动
-
点击按钮“删除名称”
-
这是问题所在:
confirmationDialog只出现一秒钟,然后 消失,不给用户任何机会(或少于一秒钟的机会) 点击确认对话框的按钮之一!
这是我的代码:
内容视图.swift
import SwiftUI struct ContentView: View { @State private var myName = "Joe" @State private var isEditingName = false var body: some View { Text("My name is: \(myName)") Button("Edit My Name") { isEditingName = true } .padding() .sheet(isPresented: $isEditingName) { EditView(name: $myName) } } } struct ContentView_Previews: PreviewProvider { static var previews: some View { ContentView() } }编辑视图.swift
import SwiftUI struct EditView: View { @Binding var name: String @State private var isShowingConfirmationDialog = false var body: some View { Form { Section { TextField("Name", text: $name) } Section { VStack { ForEach(0..<50, id: \.self) { number in Text("\(number)") } } } Section { deleteNameWithConfirmationDialog } } } private var deleteNameWithConfirmationDialog: some View { Button("Delete Name", role: .destructive) { isShowingConfirmationDialog = true } .confirmationDialog("Are you sure you want to delete name?", isPresented: $isShowingConfirmationDialog) { Button("Delete Name", role: .destructive) { name = "" } Button("Cancel", role: .cancel) { } } message: { Text("Are you sure you want to delte name?") } } } struct EditView_Previews: PreviewProvider { static var previews: some View { EditView(name: .constant(String("Joe"))) } }
【问题讨论】: