为什么我没有得到键盘SwiftUI TextField

时间:2019-08-03 00:11:00

标签: swiftui

我在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的错误,还是我遗漏了一些明显的东西?

1 个答案:

答案 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)