해결된 질문
작성
·
169
답변 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()
}
와~ 이렇게 간단하게 해결이 되네요
최고십니다~!!