SwiftUI -可变的@FocusState为子视图?



我有一个具有@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
}
}
}

直接通过绑定赋值给包装值,比如

Button("Click me!") {
isEditing.wrappedValue = false  // << here !!
}

最新更新