文本编辑器的动态高度

uma*_*nga 4 swiftui

我正在尝试将其装入TextEditora 内部ScrollView

有没有办法TextEditor只占用适合所有文本所需的空间?

或者简单地说,如何动态更改 的heightTextEditor适应所有文本?

Moj*_*ini 8

iOS 13

您可以Text在 a 中使用不可见项ZStack来使其动态化。

ZStack {
    TextEditor(text: $text)
    Text(text).opacity(0).padding(.all, 8) // <- This will solve the issue if it is in the same ZStack
}
Run Code Online (Sandbox Code Playgroud)

请注意,您应该考虑更改字体大小和其他属性以匹配TextEditor

这里我在演示列表中使用了它:

预览


iOS 16

如果您只是寻找垂直增长的输入字段,则可以调用一个参数,该参数axisTextField导致该字段在需要时垂直增长:

TextField("", text: $text, axis: .vertical)
Run Code Online (Sandbox Code Playgroud)

请注意,如果您使用 Mac 键盘进行测试,则需要按住换option行。