gpt4 book ai didi

swift - 是否可以将输入的文本保存到 SwiftUI 的警报文本字段中,并像这样在应用程序中显示它 -> Text ("alert text input here")?

转载 作者:行者123 更新时间:2023-12-04 14:16:00 26 4
gpt4 key购买 nike

到目前为止,我能够处理在警报中显示文本字段,用户可以在其中输入一些文本,但无法使用该文本并将其显示在应用程序中。

这是警报的代码:

private func alert() {
let alert = UIAlertController(title: "Enter Name", message: "...or pseudo", preferredStyle: .alert)
alert.addTextField { (textField) in
textField.placeholder = "Enter something"
}
alert.addAction(UIAlertAction(title: "Done", style: .default) { _ in })
let textField = alert.textFields![0] as UITextField
alertInput = textField.text ?? "Name"
showAlert(alert: alert)
}

func showAlert(alert: UIAlertController) {
if let controller = topMostViewController() {
controller.present(alert, animated: true)
}
}

这就是我尝试在 body 中实现它的方式:

Section {
VStack {
Button(action: {
withAnimation {
self.alert()
}
}) {
Text(alertInput)
}
}
}

alertInput 在正文之前初始化,如下所示:

@State private var alertInput = ""

最佳答案

您需要从“完成”按钮的处理程序中获取文本字段的值。所以您需要做的就是将支架向下移动:

alert.addAction(UIAlertAction(title: "Done", style: .default) { _ in
let textField = alert.textFields![0] as UITextField
alertInput = textField.text ?? "Name"
})

当用户点击您设置的 UIAlertAction 时,将调用此闭包中的代码。

请注意,如果该字段留空,textField.text 的值将是 "" 而不是 nil,因此顺序要使用您提供的默认值,您可能还需要一些额外的逻辑来检查空字符串。

关于swift - 是否可以将输入的文本保存到 SwiftUI 的警报文本字段中,并像这样在应用程序中显示它 -> Text ("alert text input here")?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60227869/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com