섹션2.끝말잇기앱 질문 - textfield 입력 변수 수정 방법
끝말잇기 앱을 만들다가 궁금증이 생겼습니다.
textfield 로 입력 받은 문자열을 수정해서 사용하고 싶을 때
(예: 사용자가 소문자로 입력한 영문자를 모두 대문자로 바꾸고 싶을 때)
어떻게 할 수 있나요?
입력받은 값을 저장한 변수를 건드리면 에러가 뜹니다.
즉,
nextWord = nextWord + "수정 더함"
해도 에러가 나고
다른 변수에 대입한 후 그 변수를 바꾸려 해도
(nextWord2 = nextWord + "수정")
에러가 납니다.


답변 1
1
안녕하세요
gatewaykim님
현재 입력중인 TextField의 내용을 바꾸고 싶다면 .onChange 모디파이어를 사용하면 됩니다.
onChange는 특정 변수의 변화를 감지해서 해당 변수가 바뀔때마다 내부 내용을 실행시켜 줍니다.
아래와 같이 TextField 바로 밑에 .onChange를 쓰고 그 내부에 원하는 실행 동작을 넣으면 됩니다.
저는 nextWord = newValue.uppercased()를 넣어서 내부의 모든 글자를 대문자로 변경하는 로직을 넣었고요.
바로 밑에 주석으로 처리된거처럼 특정 글자를 더 더할 수도 있습니다.
강의 수강해주셔서 감사드리고, 유익한 수강되셨으면 좋겠습니다.
감사합니다!
import SwiftUI
struct ContentView: View {
let title: String = "끝말잇기 게임"
@State var nextWord: String = "aa"
@State var nextWord2: String = ""
@State var nextWord3: String = ""
var body: some View {
VStack {
Text(title)
.font(.title)
.bold()
.padding()
.background(
RoundedRectangle(cornerRadius: 15)
.fill(Color.teal)
.opacity(0.2)
.shadow(radius: 5)
)
.padding(.top, 10)
TextField("여기에 입력하세요", text: $nextWord)
.onChange(of: nextWord) { newValue in
nextWord = newValue.uppercased() //입력된 글자 전부를 대문자로 바꿈
// nextWord = nextWord + " 수정"
nextWord3 = nextWord + " 새창의 입력 후 수정"
}
.padding()
.background(
RoundedRectangle(cornerRadius: 15)
.stroke(lineWidth: 2)
)
.padding(.top, 10)
Text(nextWord2)
Text(nextWord3)
Spacer()
}
.padding(.top, 10)
}
}
#Preview {
ContentView()
}
확인 버튼 만들 때 폰트 색상 화이트 주는 위치 문의드려요.
1
64
2
Button(action: label:)이 강의와 달라요!
1
60
2
HStack과 VStack에서 alignment와 spacing 방향이 이해가 잘 안갑니다.
1
68
2
modifiers 창이 안보여요.
1
97
2
showAlert 변수 mvi 패턴에서의 사용법
1
53
2
swift vs swiftUI
1
64
1
끝말잇기 로직 구현 중 ios 16 (iphone 16) 시뮬레이터 영어 입력 불가
1
81
1
@Binding된 객체는 자동으로 저장이 되나요?
1
96
2
섹션5. Class로 Todo 데이터 관리하기 부분에서 질문 있습니다.
1
82
2
JSON_Decodable.playground에서 print문이 안찍히는 문제
0
120
2
List를 넣으니 위치가 제대로 조정이 되던데 그럼 Spacer는 따로 넣을 필요가 없는걸까요?
1
104
1
콘솔창에 값이 안찍히고 있습니다.
1
141
2
todo 앱에서 미리 적어놨던 요소들은 왜 안나오나요?
1
131
2
Swift 6 업데이트 이후 Todo 예제 실행 오류
1
186
2
ToDo 앱 @Observable 기능(?) 질문입니다
0
209
2
Todo 앱 @Observable 질문입니다
2
191
2
VStack, HStack으로 뷰 구성하기 강의 padding 질문입니다
1
222
1
@State 특성(?) 질문입니다
1
161
2
6-7) 이미지 사이즈 지정 위치 질문드립니다.
1
169
1
강의 자료를 모아보는 프로그램을 제작해보려고 합니다!
0
179
1
NavigationLink 질문
1
149
1
서적 추천 부탁드립니다!
2
191
1
질문합니다. 섹션 4 - 10 [투두 삭제기능 구현하기(onDelete)]
1
217
2
섹션4-4 'NavigationStack' 오류가 납니다
1
228
1





