I’m working on an app with forms for the user, and I wanted to style my TextField
and TextEditor
instances the same. The former seem easy enough but I’m not convinced I’m constructing the latter correctly (Apple docs suggesting something like the below to be used):
<code>private struct FlippableFieldEditorStyle: TextEditorStyle {
@Binding var isBordered: Bool
@Binding var text: String
func makeBody(configuration: Configuration) -> some View {
TextEditor(text: $text)
.frame(maxHeight: 100)
.modifier(BaseTextEntryModifier(isBordered: $isBordered))
}
}
</code>
<code>private struct FlippableFieldEditorStyle: TextEditorStyle {
@Binding var isBordered: Bool
@Binding var text: String
func makeBody(configuration: Configuration) -> some View {
TextEditor(text: $text)
.frame(maxHeight: 100)
.modifier(BaseTextEntryModifier(isBordered: $isBordered))
}
}
</code>
private struct FlippableFieldEditorStyle: TextEditorStyle {
@Binding var isBordered: Bool
@Binding var text: String
func makeBody(configuration: Configuration) -> some View {
TextEditor(text: $text)
.frame(maxHeight: 100)
.modifier(BaseTextEntryModifier(isBordered: $isBordered))
}
}
And to use it:
<code>TextEditor(text: $textEntryBinding)
.textEditorStyle(FlippableFieldEditorStyle(isBordered: $isEditing,
text: $textEntryBinding))
</code>
<code>TextEditor(text: $textEntryBinding)
.textEditorStyle(FlippableFieldEditorStyle(isBordered: $isEditing,
text: $textEntryBinding))
</code>
TextEditor(text: $textEntryBinding)
.textEditorStyle(FlippableFieldEditorStyle(isBordered: $isEditing,
text: $textEntryBinding))
But this can’t be right, can it? I appear to have to pass the textEntryBinding
iVar twice. How do I access the bound variable in the TextEditorStyle
code? I’ve tried using:
<code>private struct FlippableFieldStyle: TextEditorStyle {
@Binding var isBordered: Bool
func _body(configuration: TextField<Self._Label>) -> some View {
configuration.modifier(BaseTextEntryModifier(isBordered: $isBordered))
}
}
</code>
<code>private struct FlippableFieldStyle: TextEditorStyle {
@Binding var isBordered: Bool
func _body(configuration: TextField<Self._Label>) -> some View {
configuration.modifier(BaseTextEntryModifier(isBordered: $isBordered))
}
}
</code>
private struct FlippableFieldStyle: TextEditorStyle {
@Binding var isBordered: Bool
func _body(configuration: TextField<Self._Label>) -> some View {
configuration.modifier(BaseTextEntryModifier(isBordered: $isBordered))
}
}
which is just like for the TextFieldStyle
, but this won’t compile. I admit to very much struggling with the concept of Configuration
…