我目前有以下自定义组件包装和样式的默认TextField
从快速用户界面.我遇到了一个问题,我现在需要重新使用它,@Binding
不再只是字符串,而是一个像int或Double这样的数字,因此潜在的TextField
需要改变,接受TextField(value: ..., formatter: ...)
而不仅仅是text
.
我可以将所有修饰符转换为自定义修饰符,并将其应用于相关的文本字段以应用样式,但我想知道是否有一种解决方案可以将其保留为自定义组件,而不是允许TextInputSmall
接受和传递所有可能的Textfield参数排列
TextInputSmall("", text: $someString)
和TextInputSmall("", value: $someNumber, formatter: .number)
struct TextInputSmall: View {
// Public Variables
var accentColor = Color._orange
@Binding var text: String
// Private Variables
@FocusState private var focused: Bool
// Body
var body: some View {
TextField(
"",
text: $text
)
.font(...)
.foregroundStyle(...)
.accentColor(...)
.focused($focused)
.submitLabel(.done)
.frame(...)
.padding(...)
.background(...)
}
}