SwiftUI中如何验证TextField输入值是否为Int类型
验证SwiftUI TextField输入是否为整数类型
你可以利用Swift中Int初始化字符串返回可选值的特性来判断输入是否为整数,下面是几种实用的实现方式:
方式一:直接判断可选值是否存在
修改按钮的判断逻辑,直接检查Int(integer)是否不为nil即可完成验证:
Button(action: { if Int(integer) != nil { print("Yay") } else { print("not an integer") } }, label: { Text("Check") })
方式二:可选绑定(同时获取整数值)
如果需要后续使用输入的整数,用可选绑定能同时完成验证和取值,更高效:
Button(action: { if let validInteger = Int(integer) { print("Yay, 输入的整数是 \(validInteger)") } else { print("not an integer") } }, label: { Text("Check") })
进阶:实时限制输入为整数(iOS 15+)
如果想从源头限制用户只能输入整数,可以直接将TextField绑定到Int?类型的状态变量,并使用整数格式:
struct ContentView: View { @State var integer: Int? = nil var body: some View { TextField("Enter an integer", value: $integer, format: .number) .keyboardType(.numberPad) Button(action: { if integer != nil { print("Yay") } else { print("not an integer") } }, label: { Text("Check") }) } }
这种方式下,TextField会自动过滤非数字输入,仅在输入有效整数时更新integer的值,验证逻辑会更简洁。
内容的提问来源于stack exchange,提问作者Sutton
相关产品推荐
相关产品推荐

