我在 SwiftUI 的文本字段上使用 cornerradius 和边框时遇到问题

I have trouble using cornerradius and borders on a textfield in SwiftUI

我在 swiftUI 中有一个文本字段,为了使其更具吸引力,我想添加边框和圆角。但它似乎并没有像预期的那样工作(见图)。我错过了什么?

我试过把 .cornerradius() 放在 .border() 之前,但效果一样。

TextField("Text input goes here", text: $addMins)
    .padding(.all, 5.0)
    .background(View)
    .frame(width: 300.0, height: 35.0)
    .border(Color.green, width: 2)
    .cornerRadius(14)

所以你想要这样的东西?

TextField("Text Field", text: $text)
    .padding(4)
    .overlay(
        RoundedRectangle(cornerRadius: 14)
            .stroke(Color.green, lineWidth: 2)
    )
    .padding()

这里有一个简单的方法:



struct ContentView: View {
    
    @State private var stringOfTextField: String = String()

    var body: some View {
        
        TextField("Enter text . . .", text: $stringOfTextField)
            .padding()
            .overlay(RoundedRectangle(cornerRadius: 10.0).strokeBorder(Color.black, style: StrokeStyle(lineWidth: 1.0)))
            .padding()

    }
}

顺便说一句,如果您需要具有不同背景的描边和圆角圆角文本字段,这里有一个解决方案

TextField("Placeholder", text: $text)
    .padding()
    .background(RoundedRectangle(cornerRadius: 5).fill(Color.gray))
    .overlay(
        RoundedRectangle(cornerRadius: 5)
            .stroke(lineWidth: 1)
    )
    .foregroundColor(.black)