我的Swift UI中的TextField对点击无反应,文字无法输入,是不是代码有问题?

问题描述 投票:0回答:1

你好,我是一名中级工程师,会使用swift和swift UI。

目前,我的TextField()出现了问题,它对点击和点击没有反应,因此键盘也无法显示。

然而,当它是一个VStack中的两个主要元素之一时,它确实会显示出来,但超过这个范围,它就不能工作了。

有谁能找到修复方法或解决方法吗?

谢谢,Miles

{

    @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()
    }




}
swift uitextfield swiftui textfield vstack
1个回答
0
投票

这似乎是swiftUI中很难查到的问题之一。我发现问题出在你的准备按钮上。更具体地说,标签是一个ZStack,背景是一个彩色的圆角矩形。如果您将按钮的标签替换为以下内容,您的文本字段应该是可以选择的。

Text("Ready!")
.bold()
.font(.title)
.foregroundColor(Color.white)
.frame(width: 200,height: 70)
.background(accentColor)
.mask(RoundedRectangle(cornerRadius: 90))
最新问题
© www.soinside.com 2019 - 2025. All rights reserved.