web-dev-qa-db-ja.com

SwiftUI TextField Simple Exampleが機能しない

SwiftUIで非常に単純なTextFieldを作成しようとしましたが、それを機能させることができず、何が間違っているのか理解できません。

Xcodeは私に言うエラーメッセージを与えます:

「複雑なクロージャーの戻り値の型を推測できません。明確にするために型を明示的に追加してください。」

どうすればいいかわかりません。 StackOverflowでSwiftUIを使用したTextFieldの他のコード例をいくつか見つけましたが、同じエラーが発生し続けます。

struct TextFieldExample : View {
    @State var email: String = "Enter email address"
    var body: some View {
        VStack {
            TextField($email)
            Text("Your email is \(email)!")
        }
    }
}
struct ButtonTextField : View {
    @State var text: String = ""

    var body: some View {
        HStack {
            TextField($text,
                      placeholder: Text("type something here..."))
            Button(action: {
                // Closure will be called once user taps your button
                print(self.$text)
            }) {
                Text("SEND")
            }
        }
    }
}

期待される結果=動作するTextField実際の結果= Xcodeのエラー

3
mikereining

Xcodeの最近のベータリリースでは、TextFieldが変更されました。

@State var email: String = ""

    var body: some View {
       TextField("Email", text: $email, onEditingChanged: { (isChanges) in
           // On Editing Changed
       }) {
           // On Commit
       }
       .padding(.leading, 13).padding(.trailing, 13).padding(.top, UIScreen.main.bounds.size.height / 2)
       .textContentType(.emailAddress)
       .textFieldStyle(RoundedBorderTextFieldStyle.init())
    }
1

SearchViewのようなTextField-XCODE 11.

struct SearchBarV: View {

     @State var text: String = ""
     var onEditingChanged: (Bool) -> Void = { _ in }
     var onCommit: () -> Void = { }

     var body: some View {

         GeometryReader { metrics in
             TextField("placeholder", text: self.$text, onEditingChanged: self.onEditingChanged, onCommit: self.onCommit)
            .background(Color.gray.opacity(0.1))
            .padding(EdgeInsets(top: 0.0, leading: 16.0, bottom: 0, trailing: 16.0))
            .frame(width: metrics.size.width, height: 50)
            .keyboardType(.emailAddress)
        }

    }
}


 struct SearchBarV_Previews : PreviewProvider {
     static var previews: some View {
        SearchBarV()
     }
 }
0
Krunal Patel