gpt4 book ai didi

swiftui - 无法分配给属性 : '$text' is immutable

转载 作者:行者123 更新时间:2023-12-02 18:23:26 25 4
gpt4 key购买 nike

我想在 SwiftUI 中创建一个自定义文本字段来处理第一响应者,但我在代码中遇到此错误,并且结构是不可变的,我不知道该怎么办?

struct CustomTextField: UIViewRepresentable {
class Coordinator: NSObject, UITextFieldDelegate {

@Binding var text: String
var didBecomeFirstResponder = false

init(txt: Binding<String>) {
self.$text = txt
}

func textFieldDidChangeSelection(_ textField: UITextField) {
text = textField.text ?? ""
}

}

@Binding var text: String
var isFirstResponder: Bool = false

func makeUIView(context: UIViewRepresentableContext<CustomTextField>) -> UITextField {
let textField = UITextField(frame: .zero)
textField.delegate = context.coordinator
return textField
}

func makeCoordinator() -> CustomTextField.Coordinator {
return Coordinator(txt: $text)
}

func updateUIView(_ uiView: UITextField, context: UIViewRepresentableContext<CustomTextField>) {
uiView.text = text
if isFirstResponder && !context.coordinator.didBecomeFirstResponder {
uiView.becomeFirstResponder()
context.coordinator.didBecomeFirstResponder = true
}
}
}

最佳答案

在 beta 4 中,属性包装器的实现发生了变化。

在 beta 3 之前,这是有效的:

   self.$text = txt

在 beta 4 中,它更改为:

   self._text = txt

在我发布的另一个问题中检查实现的差异:

https://stackoverflow.com/a/57088052/7786555

更多详细信息:

https://stackoverflow.com/a/56975728/7786555

关于swiftui - 无法分配给属性 : '$text' is immutable,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57178382/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com