Skip to main content
AI Assist is now on Stack Overflow. Start a chat to get instant answers from across the network. Sign up to save and share your chats.
added 179 characters in body
Source Link
struct ContentView: View { @State var newPersonName: String = "" @State var participants: [String] = [ "Jim", "Jonas" ] @State var newPlayer = "" @State var editingNewPlayer = false var body: some View { VStack(alignment: .leading, spacing: 16) { ForEach(participants, id: \.self) { participant in Text(participant) .padding(.trailing) Divider() }   Button(action: handleNewPlayerEntry, label: { TextField("New Player", text: $newPlayer)$newPersonName, onEditingChanged: { edit in  editingNewPlayer = $0 }edit   }, onCommit: handleNewPlayerEntry) })     if editingNewPlayer { Button(action: handleNewPlayerEntry, label: { TextField("New Player", text: $newPlayer$newPersonName) { edit in editingNewPlayer = false  } }) } } .padding(.leading) .frame(maxHeight: .infinity, alignment: .top) .transition(.opacity) .animation(.easeIn) }   func handleNewPlayerEntry() { if( newPersonName.count > 0) { withAnimation(.spring()) { participants.append(newPersonName) newPersonName = "" editingNewPlayer = false } } } } 
struct ContentView: View { @State var newPersonName: String = "" @State var participants: [String] = [ "Jim", "Jonas" ] @State var newPlayer = "" @State var editingNewPlayer = false var body: some View { VStack(alignment: .leading, spacing: 16) { ForEach(participants, id: \.self) { participant in Text(participant) .padding(.trailing) Divider() }   Button(action: handleNewPlayerEntry, label: { TextField("New Player", text: $newPlayer) { editingNewPlayer = $0 } }) if editingNewPlayer { Button(action: handleNewPlayerEntry, label: { TextField("New Player", text: $newPlayer) { editingNewPlayer = false } }) } } .padding(.leading) .frame(maxHeight: .infinity, alignment: .top) .transition(.opacity) .animation(.easeIn) }   func handleNewPlayerEntry() { if(newPersonName.count > 0) { withAnimation(.spring()) { participants.append(newPersonName) newPersonName = "" } } } } 
struct ContentView: View { @State var newPersonName: String = "" @State var participants: [String] = [ "Jim", "Jonas" ] @State var editingNewPlayer = false var body: some View { VStack(alignment: .leading, spacing: 16) { ForEach(participants, id: \.self) { participant in Text(participant) .padding(.trailing) Divider() } Button(action: handleNewPlayerEntry, label: { TextField("New Player", text: $newPersonName, onEditingChanged: { edit in  editingNewPlayer = edit   }, onCommit: handleNewPlayerEntry) })     if editingNewPlayer { Button(action: handleNewPlayerEntry, label: { TextField("New Player", text: $newPersonName) { edit in editingNewPlayer = false  } }) } } .padding(.leading) .frame(maxHeight: .infinity, alignment: .top) .transition(.opacity) .animation(.easeIn) } func handleNewPlayerEntry() { if newPersonName.count > 0 { withAnimation(.spring()) { participants.append(newPersonName) newPersonName = "" editingNewPlayer = false } } } } 
Source Link

Is that approaching what you're attempting to build ?

struct ContentView: View { @State var newPersonName: String = "" @State var participants: [String] = [ "Jim", "Jonas" ] @State var newPlayer = "" @State var editingNewPlayer = false var body: some View { VStack(alignment: .leading, spacing: 16) { ForEach(participants, id: \.self) { participant in Text(participant) .padding(.trailing) Divider() } Button(action: handleNewPlayerEntry, label: { TextField("New Player", text: $newPlayer) { editingNewPlayer = $0 } }) if editingNewPlayer { Button(action: handleNewPlayerEntry, label: { TextField("New Player", text: $newPlayer) { editingNewPlayer = false } }) } } .padding(.leading) .frame(maxHeight: .infinity, alignment: .top) .transition(.opacity) .animation(.easeIn) } func handleNewPlayerEntry() { if(newPersonName.count > 0) { withAnimation(.spring()) { participants.append(newPersonName) newPersonName = "" } } } }