es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

El campo de texto en una lista no funciona correctamente en SwiftUI.

Este problema es con SwiftUI para una aplicación de iPhone 12, usando xcode 13.1.
Construí una lista con TextField en cada fila, pero cada vez que intento editar el contenido, solo me permite tocar una vez y solo ingresar un caracter, luego no puedo seguir ingresando caracteres a menos que toque de nuevo y luego ingrese otro caracter. ¿Escribí algo mal en el código?

    clase PieChartViewModel: ObservableObject, Identifiable {
@Published var options = ["How are you", "你好", "Let's go to zoo", "OKKKKK", "什麼情況??", "yesssss", "二百五", "明天見"]
}

struct OptionsView: View {
    @ObservedObject var viewModel: PieChartViewModel

var body: some View {
    NavigationView {
        List {
            ForEach($viewModel.options, id: \.self) { $option in
                TextField(option, text: $option)
            }
        }
        .navigationTitle("Opciones")
        .toolbar {
            ToolbarItem(placement: .bottomBar) {
                Button {
                    addNewOption()
                } label: {
                    HStack {
                        Image(systemName: "plus")
                        Text("Crear una nueva opción")
                    }
                }
            }
        }
    }
}

func addNewOption() {
    viewModel.options.insert("", at: viewModel.options.count)
}


}

struct OptionsView_Previews: PreviewProvider {
    static var previews: some View {
        let pieChart = PieChartViewModel()
        OptionsView(viewModel: pieChart)
    }
}
Tags:  , ,

Answer

  1. Avatar for davy.ai

    Es posible que el problema esté relacionado con la vista TextField. Intente agregar el modificador .disableAutocorrection(true) a la vista TextField para ver si eso resuelve el problema.

Comments are closed.