假设我正在制作一个看起来像这样的自定义输入元素:
struct CustomInput : View {
@Binding var text: String
var name: String
var body: some View {
TextField(name, text: $text)
.modifier(InputModifier())
}
}
当前,当我实例化此视图时,我需要将text
和name
名称同时传递给参数。我希望能够使name
参数可选,就像以下示例一样。
CustomInput("Some name", $text)
通常我会使用初始方法。但是我不确定如何处理初始化功能中的 @Binding
之类的属性包装器。
关于我如何实现这一目标的任何想法?
您可以像这样编写您的初始器:
struct CustomInput : View {
@Binding var text: String
var name: String
init(_ name: String, _ text: Binding<String>) {
self.name = name
// Beta 3
// self.$text = text
// Beta 4
self._text = text
}
var body: some View {
TextField(name, text: $text)
}
}