Hello, has anyone found a solution for this?
Here's my code:
VStack(spacing: 8) {
TextField("",
text: $amountFormatter.value,
onEditingChanged: { amountFormatter.isEditing = $0 })
.accessibilityLabel(Text(amountFormatter.voiceOverAmountLabel))
.font(.bodyRegularL)
.foregroundStyle(Color.typographyText)
.keyboardType(.decimalPad)
.showClearButton($amountFormatter.value, addTopPadding: false)
.keyboardDoneButton()
.onChange(of: amountFormatter.value) { _ in
amountFormatter.validateValue()
}
.onChange(of: isFocused) { isFocused in
amountFormatter.updateValue(isEditing: isFocused)
print(isFocused)
}
.focused($isFocused)
Rectangle().frame(height: 1)
.foregroundStyle(Color.standardMain500)
}
}
And the modifier:
func keyboardDoneButton() -> some View {
modifier(KeyboardDoneButtonViewModifier())
}
}
private struct KeyboardDoneButtonViewModifier: ViewModifier {
@FocusState var isFocused: Bool
func body(content: Content) -> some View {
content
.focused($isFocused)
.toolbar {
ToolbarItemGroup(placement: .keyboard) {
if isFocused {
Spacer()
Button(L10n.menuDoneButtonText) {
isFocused = false
}
}
}
}
}
}
Topic:
UI Frameworks
SubTopic:
SwiftUI
Tags: