我在SwiftUI中有3个TextField。一个在上面,两个在下面。
VStack{
//TF1
TextField("Duty", text: $dutyNumber)
.textFieldStyle(RoundedBorderTextFieldStyle())
.padding([.leading], 50)
.multilineTextAlignment(.center)
.keyboardType(.numberPad)
HStack{
//TF2
TextField("Start time", text: $dutyStartTime)
.textFieldStyle(RoundedBorderTextFieldStyle())
.padding([.leading], 50)
.multilineTextAlignment(.center)
.keyboardType(.numberPad)
//TF3
TextField("Finish time", text: $dutyFinishTime)
.textFieldStyle(RoundedBorderTextFieldStyle())
.padding([.leading], 50)
.multilineTextAlignment(.center)
.keyboardType(.numberPad)
}
}.cornerRadius(4)
但是,只有最后一个文本字段TF3是交互式的。无法选择前两个TF1和TF2。可以使用键盘将其制表,但不能用手指点击选择它们。例如,如果我将顺序从TF1,TF2,TF3更改为TF1,TF3,TF2。然后,TF2现在是交互式的,但TF1和TF3没有。这是在SwiftUI中添加多个TextField的错误,还是我遗漏了一些明显的东西?
答案 0 :(得分:4)
添加答案以使他人受益。
解决这个问题的方法是删除.cornerRadius和所有TextFields。
VStack{
//TF1
TextField("Duty", text: $dutyNumber)
.textFieldStyle(RoundedBorderTextFieldStyle())
.padding([.leading], 50)
.multilineTextAlignment(.center)
.keyboardType(.numberPad)
HStack{
//TF2
TextField("Start time", text: $dutyStartTime)
.textFieldStyle(RoundedBorderTextFieldStyle())
.padding([.leading], 50)
.multilineTextAlignment(.center)
.keyboardType(.numberPad)
//TF3
TextField("Finish time", text: $dutyFinishTime)
.textFieldStyle(RoundedBorderTextFieldStyle())
.padding([.leading], 50)
.multilineTextAlignment(.center)
.keyboardType(.numberPad)
}
}//.cornerRadius(4)