Add keyboard dismiss toolbar for iOS numeric and multi-line fields

Creates a reusable KeyboardDismissToolbar view modifier that adds a
"Done" button to dismiss keyboards that don't have a return key.
Applied to all numeric keyboards (numberPad, decimalPad, phonePad)
and multi-line text inputs (TextEditor, TextField with axis: .vertical).

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
Trey t
2025-12-15 21:20:33 -06:00
parent e44bcdd988
commit e7c09f687a
9 changed files with 44 additions and 0 deletions

View File

@@ -188,6 +188,7 @@ struct TaskFormView: View {
TextField(L10n.Tasks.descriptionOptional, text: $description, axis: .vertical)
.lineLimit(3...6)
.focused($focusedField, equals: .description)
.keyboardDismissToolbar()
} header: {
Text(L10n.Tasks.taskDetails)
} footer: {
@@ -232,6 +233,7 @@ struct TaskFormView: View {
TextField(L10n.Tasks.customInterval, text: $intervalDays)
.keyboardType(.numberPad)
.focused($focusedField, equals: .intervalDays)
.keyboardDismissToolbar()
}
DatePicker(L10n.Tasks.dueDate, selection: $dueDate, displayedComponents: .date)
@@ -274,6 +276,7 @@ struct TaskFormView: View {
.focused($focusedField, equals: .estimatedCost)
}
.listRowBackground(Color.appBackgroundSecondary)
.keyboardDismissToolbar()
if let errorMessage = viewModel.errorMessage {
Section {