Hallo Freunde und Freundinnen gepflegter Programmierung,
irgendwie bekomme ich folgendes Problem nicht richtig gelöst
Habe Array von Werten. Mit ForEach durch das Array und damit eine Armada von TextFields erstellen. Das TextField will ein Binding, also gebe ich ihm eins. So sieht dann mein Code aus.
Alles anzeigen
Mein Problem: entweder (Code etwas anders - s.u.) kann ich in den TextFields immer nur 1 Zeichen ändern und dann geht der Focus verloren oder (Code so wie oben) kann ich zwar was ändern, aber es wird nicht gespeichert.
Code modifiziert (Nur das TextField - hier kann ich immer nur 1 Zeichen ändern):
Wäre super, wenn mir jemand mit dem Binding helfen könnte.
Schönes Wochenende und beste Grüße
irgendwie bekomme ich folgendes Problem nicht richtig gelöst
Habe Array von Werten. Mit ForEach durch das Array und damit eine Armada von TextFields erstellen. Das TextField will ein Binding, also gebe ich ihm eins. So sieht dann mein Code aus.
Quellcode
- ForEach(Array(aktenzeichen.enumerated()), id: \.element) { i, az in
- var x: String = az
- HStack(alignment: .firstTextBaseline) {
- Spacer()
- TextField("az",
- text: Binding<String>(
- get: {
- az.trimmingCharacters(in: .whitespacesAndNewlines)
- },
- set: {
- x = $0.trimmingCharacters(in: .whitespacesAndNewlines)
- }
- ),
- onEditingChanged: { editing in
- if !editing {
- aktenzeichen[i] = x
- }
- }
- )
- .labelsHidden()
- .frame(width: AppSettings.fieldWidth)
- .shadow(color: .gray, radius: 0.5, x: 0.0, y: 0.25)
- Button {
- aktenzeichen.remove(at: i)
- } label: {
- Label("del", systemImage: "minus.circle.fill")
- .foregroundStyle(Color.red)
- .labelStyle(.iconOnly)
- }
- .buttonStyle(.borderless)
- }
- }
Mein Problem: entweder (Code etwas anders - s.u.) kann ich in den TextFields immer nur 1 Zeichen ändern und dann geht der Focus verloren oder (Code so wie oben) kann ich zwar was ändern, aber es wird nicht gespeichert.
Code modifiziert (Nur das TextField - hier kann ich immer nur 1 Zeichen ändern):
Wäre super, wenn mir jemand mit dem Binding helfen könnte.
Schönes Wochenende und beste Grüße