假设我要制作一个如下所示的自定义输入元素:
struct CustomInput : View {
@Binding var text: String
var name: String
var body: some View {
TextField(name, text: $text)
.modifier(InputModifier())
}
}
Run Code Online (Sandbox Code Playgroud)
当前,当我实例化该视图时,需要将text和name名称都传递给参数。我希望能够使name参数成为可选参数,例如下面的示例。
CustomInput("Some name", $text)
Run Code Online (Sandbox Code Playgroud)
通常,我会为此使用init方法。但是我不确定如何像@Bindinginit函数一样处理属性包装器。
关于如何实现此目标的任何想法?
kon*_*iki 18
您可以这样编写初始化程序:
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)
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2076 次 |
| 最近记录: |