在 SwiftUI 中设置 TextField 的宽度

Set width of TextField in SwiftUI

当使用 TextField 时,我想将其设置为固定宽度,而不考虑显示的文本长度,例如“123456789”的字段宽度,即使内容只有“1”。

TextField("0", text: $username)
    .textFieldStyle(RoundedBorderTextFieldStyle())
    .fixedSize(horizontal: true, vertical: false)
    .frame(width: 120)

我没有找到任何设置宽度的东西。使用 frame 只影响周围的框架,但我想设置 TextField 本身的宽度。所以可见宽度应该比它的内容宽。 有什么想法吗?

只需在应用 .textFieldStyle() 修饰符之前移动 .frame() 修饰符。

import SwiftUI

struct ContentView: View {
    @State private var username = ""
    
    var body: some View {
        TextField("0", text: $username)
            .frame(width: 120)
            .textFieldStyle(RoundedBorderTextFieldStyle())
            .fixedSize(horizontal: true, vertical: false)
    }
}

struct ContentView_Previews: PreviewProvider {
    static var previews: some View {
        ContentView()
    }
}

给你!