【问题标题】:SwiftUI vertical axis TextFields collapses to nothing when .fixedSize() is applied应用 .fixedSize() 时,SwiftUI 垂直轴 TextFields 崩溃为零
【发布时间】:2023-02-05 10:40:13
【问题描述】:

iOS 16(终于)允许我们在TextField 中指定一个axis:,让文本输入跨越多行。

但是,我不希望我的文本字段总是填满可用的水平空间。它应该填满已输入的文本所占用的空间量。为此,我们可以申请.fixedSize()

然而,结合使用这两个东西会导致文本字段完全折叠并且不占用任何空间。此错误 (?) 不会影响水平滚动文本字段。

这种基本行为是简单地被破坏了,还是这些方法不能很好地发挥作用有一个迟钝但有效的理由?

这很容易复制:

struct ContentView: View {
    @State var enteredText: String = "Test Text"
    
    var body: some View {
        TextField("Testing", text: $enteredText, axis: .vertical)
            .padding()
            .fixedSize()
            .border(.red)
    }
}

运行它会产生一个红色框,大小与你的填充一样。不显示任何文字。

【问题讨论】:

    标签: swift swiftui ios16


    【解决方案1】:

    我不希望我的文本字段总是填满可用的水平空间。它应该填满已输入的文本所占用的空间量。

    这是一个奇怪的愿望。如果要删除 TextField 的背景,请执行此操作。但我不认为拥有自动调整大小的 TextField 是个好主意。反对它的原因之一是,如果您擦除所有文本,那么 TextField 将折叠为零宽度,您永远不会将光标设置到其中。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-11-08
      • 1970-01-01
      • 2020-10-06
      • 1970-01-01
      • 2015-10-07
      相关资源
      最近更新 更多