如何解决在用户键入正确的输入之前,将iOS SwiftUI TextField的键盘保持在屏幕上
我的iOS SwiftUI TextField邀请用户键入一个Int。用户按下返回键后,将发生以下两种情况之一。如果输入是Int,我们将执行一些简单的算术运算并将结果显示在Text中。否则,我们会在文本中的错误消息中显示错误的输入。无论哪种情况,都将关闭TextField的键盘。如果用户键入了错误的输入,如何将键盘保持在屏幕上,并保持在屏幕上,直到用户键入可接受的输入?在此先感谢您,并再次感谢回答我以前的TextField问题的人们。 macOS Catalina 10.15.6,Xcode 11.6。
struct ContentView: View {
@State private var inputText: String = "";
@State private var outputText: String = " ";
var body: some View {
VStack {
TextField("Enter an integer:",text: Binding<String>(
get: {return self.inputText},set: {
self.inputText = $0; //$0 is the text in the TextField.
self.outputText = " ";
}
),onCommit: {
guard let i: Int = Int(self.inputText) else {
self.outputText = "Bad input \"\(self.inputText)\".";
return;
}
self.outputText = "The product is \(2 * i).";
}
)
.keyboardType(.numbersAndPunctuation)
.textFieldStyle(RoundedBorderTextFieldStyle())
Text(outputText)
}
.padding([.leading,.trailing],16)
}
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。