首页 > 解决方案 > Xcode 模拟器没有显示 swift ui 占位符文本

问题描述

我有文本字段,其中包含占位符文本,在 swift UI 的预览屏幕上显示,但是带有 Xcode 的模拟器不显示占位符文本。

它在预览中有效,但在 Xcode 模拟器中无效,所以它只是 swift UI 或我的代码中的错误?

SwiftUI 预览画面 Simulator Screen下面 的图片

import SwiftUI

struct doctor: View {
@State var userInputone: String = ""
@State var userInputtwo: String = ""
@State var userInputthree: String = ""
@State var userInputfour: String = ""
@State var userInputfive: String = ""
@State var userInputsix: String = ""

var body: some View {
    ZStack{
        Color.white
    .edgesIgnoringSafeArea(.all)
        VStack{
            Text("Whats up Doc?")
                .font(.largeTitle)
                .foregroundColor(Color.gray)
                .multilineTextAlignment(.leading)



            Text("Let's get to know each other")
                .foregroundColor(Color.gray)
                .multilineTextAlignment(.leading)

                 .padding()

            .shadow(radius:10)
            TextField("FirstName", text: $userInputone)
            .padding()
             .background(Color(red: 0.937, green: 0.952, blue: 0.956))
            .cornerRadius(15)
                .padding()

            .shadow(radius:10)
            TextField("LastName", text: $userInputtwo)
                .padding()
                .background(Color(red: 0.937, green: 0.952, blue: 0.956))
                 .cornerRadius(15)
                .padding()
               .shadow(radius:10)


            TextField("LastName", text: $userInputthree)
                .padding()
              .background(Color(red: 0.937, green: 0.952, blue: 0.956))
                  .cornerRadius(15)
                   .padding()
        .shadow(radius:10)
            TextField("LastName", text: $userInputfour)
                    .padding()
                   .background(Color(red: 0.937, green: 0.952, blue: 0.956))
                   .cornerRadius(15)
                                  .padding()
            .shadow(radius:10)
            TextField("LastName", text: $userInputfive)
                 .padding()
                .background(Color(red: 0.937, green: 0.952, blue: 0.956))
               .cornerRadius(15)
               .padding()
            .shadow(radius:10)
            TextField("LastName", text: $userInputsix)
              .padding()
              .background(Color(red: 0.937, green: 0.952, blue: 0.956))
               .cornerRadius(15)
               .padding()
           .shadow(radius:10)

            NavigationLink(destination: createaccount()){

               Text("Next")
             .fontWeight(.bold)
            .foregroundColor(Color.white)
              .padding(.all, 20.0)
              .frame(height: 44.0)
            .frame(width: 300.0)
        .background(LinearGradient(gradient: Gradient(colors: [Color.gray, Color.purple]), startPoint: .top, endPoint: .bottom))
          .cornerRadius(20)


        }
        }


    }




}
}

struct doctor_Previews: PreviewProvider {
static var previews: some View {
    doctor()
}
}

标签: iosswift

解决方案


由于暗模式,占位符在您定义的颜色的文本字段背景上不可见。解决方案可能是这样的:

Assets.xcassets定义新颜色中,从检查器的右侧将外观更改为Any, Dark并将颜色更改为您喜欢的颜色。然后您可以将其用作文本字段中的背景

在此处输入图像描述


推荐阅读