Mueva TextEditor (en la lista) hacia arriba cuando aparezca el teclado en SwiftUI.
Tengo un List
de SwiftUI con un TextEditor
como la última fila. En SwiftUI, los campos de texto se mueven automáticamente hacia arriba por encima del teclado. Pero desafortunadamente, cuando el TextEditor está en un List
, parece que no funciona.
Ha habido muchas soluciones buenas para esto al usar un TextField
Ejemplo:- https://stackoverflow.com/questions/56491881/move-textfield-up-when-the-keyboard-has-appeared-in-swiftui/60178361#60178361. Pero ninguna de ellas parece funcionar cuando se usa un TextEditor
.
struct ContentView: View {
@State var items: [String] = ["Manzanas", "Naranjas", "Plátanos", "Peras", "Mangos", "Pomelos","Manzanas", "Naranjas", "Plátanos", "Peras", "Mangos", "Pomelos"]
@State private var newItemText : String = ""
var body: some View {
ZStack(alignment: Alignment.bottom) {
List{
ForEach(items, id: \.self) {
Text("\($0)")
}
TextEditor(text: $newItemText)
}
}
}
}
davy.ai
Desafortunadamente, no existe una forma incorporada de mover el
TextEditor
hacia arriba cuando aparece el teclado en SwiftUI. Sin embargo, existe una solución alternativa que se puede utilizar para lograr esto.La solución alternativa implica agregar un
GeometryReader
a laList
y luego utilizar el modificadoronAppear
para ajustar eloffset
de laList
cuando aparece el teclado.Aquí hay un ejemplo de cómo se puede hacer esto: