SwiftUI 单击文本字段时满足约束错误

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

当我尝试创建一个简单的登录/注册页面并单击文本字段时,它首先滞后并显示“无法找到或解码 rasons”。然后它超时并说无法同时满足约束。 我没有添加任何应该真正干扰约束的东西(甚至做了一个新项目来确保)。enter image description here

这是我尝试过的基本实现代码:

ContentView.swift

import SwiftUI

struct ContentView: View {
    @State private var email: String = ""
    @State private var password: String = ""
    
    var body: some View {
        NavigationStack {
            VStack {
                TextField("Email", text: $email)
                    
                    .frame(width: 300, height: 50)
                    .background(Color(.systemGray6))
                    .cornerRadius(10)
                    
                
                SecureField("Password", text: $password)
                    
                    .frame(width: 300, height: 50)
                    .background(Color(.systemGray6))
                    .cornerRadius(10)
            }
            
        }
    }
}

#Preview {
    ContentView()
}

enter image description here

swift xcode swiftui textfield
1个回答
0
投票

第 1 步:一个 SwiftUI 项目包含且只有一个入口点。因此,搜索应用程序 swift 文件,它应该类似于下面给出的代码集,搜索“@main”、struct [AppName]App: App 等关键字来查找文件。

import SwiftUI

@main
struct [ProjectName]App: App {
  
    var body: some Scene {
        WindowGroup {
            NavigationStack {
               ContentView()  
             }
          }
      }
  }

第 2 步:- 我从 ContentView() 中删除了导航堆栈并将其放置在顶部层次结构中。

import SwiftUI

struct ContentView: View {
    @State private var email: String = ""
    @State private var password: String = ""
    
    var body: some View {
            VStack {
                TextField("Email", text: $email)
                    
                    .frame(width: 300, height: 50)
                    .background(Color(.systemGray6))
                    .cornerRadius(10)
                    
                
                SecureField("Password", text: $password)
                    
                    .frame(width: 300, height: 50)
                    .background(Color(.systemGray6))
                    .cornerRadius(10)
            }
    }
}

#Preview {
    ContentView()
}

试试这个应该可以。

© www.soinside.com 2019 - 2024. All rights reserved.