Post

Replies

Boosts

Views

Activity

Binding a Textfield to a name in a Object
Hello everybody, Im new to Swift programming or app programming in geenrell and now im working on my first project. However im struggling right now with something. I crated an object for my Quizzplayer. To give them a name I want to create a textfield for each one of them where the user can enter the name. let me give u a code snippet for my quizPlayer object: class QuizPlayer: ObservableObject { @Published var name: String @Published var points: Int @Published var isActive: Bool init(name: String) { self.name = name self.points = 0 self.isActive = false } func addPoints(pointsToAdd: Int) { self.points += pointsToAdd } func changeName(newName: String) { self.name = newName } } I create 5 empty Quizzplayers at the beginning: @State private var quizPlayers: [QuizPlayer] = Array(repeating: QuizPlayer(name: ""), count: 5) then I create my Textfields and try to bind dem to the names of the players: ForEach(0 ..< self.numberOfPlayers, id: .self) { index in TextField("Player (index + 1) name", text: self.$quizPlayers[index].name) .padding() } But it's not working at all. very time I run the simulator and edit one textfield, every textfield gets changed so I can't edit them individually. I´m not sure if I used the State and ObservableObject right or what the issue is. Maybe someone understands my problem and can help me. All the best Leon
2
0
281
Nov ’23