SwiftUI文本字段和整数
我今天开始使用SwiftUI,我想编写一个小计算器。因此,我需要一个文本字段,用户可以在其中写入数字。但是通常的文本字段只接受字符串SwiftUI文本字段和整数,swiftui,Swiftui,我今天开始使用SwiftUI,我想编写一个小计算器。因此,我需要一个文本字段,用户可以在其中写入数字。但是通常的文本字段只接受字符串 我能做什么?如果要强制文本字段键盘为数字,只需执行以下操作: TextField("Input", text: $input) .keyboardType(.decimalPad) 如果键盘类型是一个。使用SwiftUI 2.0,您可以使用以下内容: struct ContentView: View { @State var theI
我能做什么?如果要强制
文本字段
键盘为数字,只需执行以下操作:
TextField("Input", text: $input)
.keyboardType(.decimalPad)
如果
键盘类型是一个。使用SwiftUI 2.0,您可以使用以下内容:
struct ContentView: View {
@State var theInt: Int?
@State var text = ""
var body: some View {
VStack {
TextField("enter a number", text: $text)
.onChange(of: text) {
let txt = $0.filter { "-0123456789".contains($0) }
if allowed(txt) {
theInt = Int(txt)
text = txt
} else {
text = String(txt.dropLast())
}
}
}
}
func allowed(_ str: String) -> Bool {
let num = str.starts(with: "-") ? String(str.dropFirst()) : str
return CharacterSet.decimalDigits.isSuperset(of: CharacterSet(charactersIn: num))
}
}
您是在问如何将字符串转换为Int吗?因为“常用文本字段”也接受数字,就像字符串一样,而不是int。例如,您需要通过int(myString)
将字符串转换为int。这是否回答了您的问题?您仍然可以使用此解决方案粘贴一些文本。