ユーザーが数字と1つのドットだけを入力できるswiftuiテキストフィールドを作成する方法は?つまり、入力が数字またはドットであり、テキストフィールドに別のドットがない場合、数字は受け入れられます。それ以外の場合、数字の入力は無視されます。ステッパーの使用はオプションではありません。
これは、TextField検証の簡単なソリューションです:(更新)
struct ContentView: View {
@State private var text = ""
func validate() -> Binding<String> {
let acceptableNumbers: String = "0987654321."
return Binding<String>(
get: {
return self.text
}) {
if CharacterSet(charactersIn: acceptableNumbers).isSuperset(of: CharacterSet(charactersIn: $0)) {
print("Valid String")
self.text = $0
} else {
print("Invalid String")
self.text = $0
self.text = ""
}
}
}
var body: some View {
VStack {
Spacer()
TextField("Text", text: validate())
.padding(24)
Spacer()
}
}
}