My TextField в Swift UI не реагирует на касания и щелчки, текст не может быть введен, есть ли проблема с кодом?
Привет, я инженер среднего уровня с быстрым и быстрым интерфейсом.
В настоящее время у меня проблемы с TextField(), он не реагирует на касания и щелчки, и, следовательно, клавиатура не отображается,
Тем не менее, он появляется, когда является одним из двух основных элементов в VStack, но более того, он не работает,
Есть проблема с кодом? и может ли кто-нибудь найти исправление или обходной путь для этого?
Спасибо, Майлз
{
@State var textField = ""
var body: some View {
returnJoinModalContent()
}
func returnJoinModalContent() -> some View{
let accentColor = Color.blue
return VStack(alignment: .center){
HStack{
Text("Join Game")
.bold()
.font(.largeTitle)
.padding()
Spacer()
Button(action:{
//self.hideModal()
}){
Image(systemName: "xmark.circle.fill")
.resizable()
.frame(width: 50,height: 50)
.foregroundColor(accentColor)
.padding()
}
}
.padding(.bottom,170)
VStack(alignment: .leading){
TextField("Enter Game Code",text: self.$textField)
.font(.largeTitle)
Rectangle()
.frame(height: 6)
.foregroundColor(accentColor)
}
.padding()
HStack{
Button(action:{
//self.joinGame()
}){
ZStack{
RoundedRectangle(cornerRadius: 90)
.frame(width: 200,height: 70)
.foregroundColor(accentColor)
Text("Ready!")
.bold()
.font(.title)
.foregroundColor(Color.white)
}
}
}
.padding(.vertical,20)
HStack{
Image(systemName: "info.circle")
.resizable()
.frame(width:60,height:60)
.foregroundColor(accentColor)
Text("Ask your host for the game code, it can be found at the bottom of the player lobby")
.padding()
Spacer()
}
.padding(.top,60)
.padding(.horizontal,20)
Spacer()
}
.padding()
}
}
2 ответа
Кажется, это одна из тех вещей в swiftUI, которую сложно отследить. Я обнаружил, что проблема в твоей кнопке "Готово". В частности, метка представляет собой ZStack с цветным скругленным прямоугольником в качестве фона. Если вы замените метку кнопки следующим, ваше текстовое поле должно быть доступно для выбора.
Text("Ready!")
.bold()
.font(.title)
.foregroundColor(Color.white)
.frame(width: 200,height: 70)
.background(accentColor)
.mask(RoundedRectangle(cornerRadius: 90))
Я нашел это
overlay
на контейнере или контейнере
TextField
может привести к тому, что он не отвечает
вы должны удалить его и заменить на
ZStack