在 SwiftUI 中设置 TextField 的宽度

Posted

技术标签:

【中文标题】在 SwiftUI 中设置 TextField 的宽度【英文标题】:Set width of TextField in SwiftUI 【发布时间】:2022-01-04 10:08:02 【问题描述】:

使用 TextField 时,无论显示的文本长度如何,我都想将其设置为固定宽度,例如“123456789”的字段宽度,即使内容仅为“1”。

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

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

【问题讨论】:

【参考方案1】:

在应用 .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()
    

你去!

【讨论】:

以上是关于在 SwiftUI 中设置 TextField 的宽度的主要内容,如果未能解决你的问题,请参考以下文章

在 RxSwift 中设置 TextField 字符的限制 [重复]

java JavaFX - 在JavaFX TextField中设置提示(提示)int

如何在 SwiftUI 中设置 addObserver?

在 SwiftUI 中设置切换颜色

在 SwiftUI 中设置切换颜色

以编程方式在 material-ui Autocomplete TextField 中设置值