On iPad, a multiline TextField inside a List does not scroll when the text wraps to a new line. The caret and newly entered text can move behind the keyboard until the user scrolls manually. The same code works correctly on iPhone.
struct ContentView: View {
@State var text = ""
var body: some View {
List {
Color.red.frame(width: 200, height: 500)
// When the caret goes to the next line during the text input the scroll doesn't follow it.
// So the new text is being overlapped by the keyboard until you scroll manually.
TextField(
"Run me on iPad and start entering multiline text with keyboard up",
text: $text,
axis: .vertical
)
.lineLimit(1...)
Color.red.frame(width: 200, height: 500)
}
}
}