SwiftUI - 子视图的可变@FocusState?

Kyl*_*ley 26 iphone ios swift swiftui ios15

我有一个带有@FocusState变量的父视图,我想将其传递到包含TextField. 我希望能够FocusState从子视图中更改 ,但出现错误Cannot assign to property: 'self' is immutableCannot assign value of type 'Bool' to type 'FocusState<Bool>.Binding'

父视图:

struct ParentView: View {
    @State private var text: String
    @FocusState private var isEditing: Bool
    
    var body: some View {
        ChildView($text, $isEditing)
    }
}

struct ChildView: View {
    @Binding var text: String
    var isEditing: FocusState<Bool>.Binding
    
    init(_ text: Binding<String>, _ isEditing: FocusState<Bool>.Binding) {
        self._text = text
        self.isEditing = isEditing
    }
    
    var body: some View {
        TextField("Username", text: $text)
            .focused(isEditing)
        
        Button("Click me!") {
            isEditing = false  // Error here
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

Asp*_*eri 19

只需通过绑定分配给包装值,例如

Button("Click me!") {
    isEditing.wrappedValue = false  // << here !!
}
Run Code Online (Sandbox Code Playgroud)