diff --git a/VDSSample/ViewControllers/BadgeViewController.swift b/VDSSample/ViewControllers/BadgeViewController.swift index 4582ee9..db2e291 100644 --- a/VDSSample/ViewControllers/BadgeViewController.swift +++ b/VDSSample/ViewControllers/BadgeViewController.swift @@ -53,6 +53,8 @@ class BadgeViewController: BaseViewController { var maxWidthTextField = TextField() var badge = Badge() + override func allTextFields() -> [UITextField]? { [textField, maxWidthTextField] } + override func viewDidLoad() { super.viewDidLoad() @@ -68,7 +70,7 @@ class BadgeViewController: BaseViewController { addFormRow(label: "Text", view: textField) addFormRow(label: "Max Width", view: maxWidthTextField) addFormRow(label: "Number of Lines", view: numberOfLinesPickerSelectorView) - + textField .textPublisher .sink { [weak self] text in diff --git a/VDSSample/ViewControllers/BaseViewController.swift b/VDSSample/ViewControllers/BaseViewController.swift index ea04a4e..d331a22 100644 --- a/VDSSample/ViewControllers/BaseViewController.swift +++ b/VDSSample/ViewControllers/BaseViewController.swift @@ -186,10 +186,23 @@ public class BaseViewController: UIViewController, Initable { } } - open func setup() {} + open func setup() { + if let textFields = allTextFields() { + for textField in textFields { + textField.returnKeyType = .done + textField + .publisher(for: .editingDidEndOnExit) + .sink { textField in + textField.resignFirstResponder() + } + .store(in: &subscribers) + } + } + } open func updateView() { print("\(Self.self) updateView()") } + open func allTextFields() -> [UITextField]? { nil } } diff --git a/VDSSample/ViewControllers/ButtonGroupViewController.swift b/VDSSample/ViewControllers/ButtonGroupViewController.swift index 141e49b..7697936 100644 --- a/VDSSample/ViewControllers/ButtonGroupViewController.swift +++ b/VDSSample/ViewControllers/ButtonGroupViewController.swift @@ -40,6 +40,8 @@ class ButtonGroupViewController: BaseViewController { setupModel() } + override func allTextFields() -> [UITextField]? { [widthTextField] } + func setupForm(){ addFormRow(label: "Surface", view: surfacePickerSelectorView) addFormRow(label: "Disabled", view: .makeWrapper(for: disabledSwitch)) diff --git a/VDSSample/ViewControllers/ButtonViewController.swift b/VDSSample/ViewControllers/ButtonViewController.swift index 960beea..b1a92a1 100644 --- a/VDSSample/ViewControllers/ButtonViewController.swift +++ b/VDSSample/ViewControllers/ButtonViewController.swift @@ -40,6 +40,8 @@ class ButtonViewController: BaseViewController { setupModel() } + override func allTextFields() -> [UITextField]? { [textField, widthTextField] } + func setupForm(){ addFormRow(label: "Surface", view: surfacePickerSelectorView) addFormRow(label: "Use", view: usePickerSelectorView) diff --git a/VDSSample/ViewControllers/CheckBoxGroupViewController.swift b/VDSSample/ViewControllers/CheckBoxGroupViewController.swift index 21bcb0e..abe2586 100644 --- a/VDSSample/ViewControllers/CheckBoxGroupViewController.swift +++ b/VDSSample/ViewControllers/CheckBoxGroupViewController.swift @@ -29,6 +29,8 @@ class CheckboxGroupViewController: BaseViewController { setupModel() } + override func allTextFields() -> [UITextField]? { [labelTextField, childTextField] } + func setupForm() { addFormRow(label: "Disabled", view: .makeWrapper(for: disabledSwitch)) addFormRow(label: "Surface", view: surfacePickerSelectorView) diff --git a/VDSSample/ViewControllers/CheckboxViewController.swift b/VDSSample/ViewControllers/CheckboxViewController.swift index a2d9c78..f8f9d07 100644 --- a/VDSSample/ViewControllers/CheckboxViewController.swift +++ b/VDSSample/ViewControllers/CheckboxViewController.swift @@ -30,6 +30,8 @@ class CheckboxViewController: BaseViewController { setupModel() } + override func allTextFields() -> [UITextField]? { [labelTextField, childTextField, errorTextField] } + func setupForm(){ addFormRow(label: "Disabled", view: .makeWrapper(for: disabledSwitch)) addFormRow(label: "Surface", view: surfacePickerSelectorView) diff --git a/VDSSample/ViewControllers/LabelViewController.swift b/VDSSample/ViewControllers/LabelViewController.swift index 2036185..0f400b1 100644 --- a/VDSSample/ViewControllers/LabelViewController.swift +++ b/VDSSample/ViewControllers/LabelViewController.swift @@ -38,6 +38,8 @@ class LabelViewController: BaseViewController { setupModel() } + override func allTextFields() -> [UITextField]? { [textField] } + func setupForm(){ addFormRow(label: "Disabled", view: .makeWrapper(for: disabledSwitch)) addFormRow(label: "Bold", view: .makeWrapper(for: boldSwitch)) diff --git a/VDSSample/ViewControllers/RadioBoxGroupViewController.swift b/VDSSample/ViewControllers/RadioBoxGroupViewController.swift index ac3f58c..7e0bcc6 100644 --- a/VDSSample/ViewControllers/RadioBoxGroupViewController.swift +++ b/VDSSample/ViewControllers/RadioBoxGroupViewController.swift @@ -31,6 +31,8 @@ class RadioBoxGroupViewController: BaseViewController { setupModel() } + override func allTextFields() -> [UITextField]? { [textField, subTextField, subTextRightField] } + func setupForm() { addFormRow(label: "Disabled", view: .makeWrapper(for: disabledSwitch)) addFormRow(label: "Surface", view: surfacePickerSelectorView) diff --git a/VDSSample/ViewControllers/RadioButtonViewController.swift b/VDSSample/ViewControllers/RadioButtonViewController.swift index 18afd8b..ea31fcf 100644 --- a/VDSSample/ViewControllers/RadioButtonViewController.swift +++ b/VDSSample/ViewControllers/RadioButtonViewController.swift @@ -29,6 +29,8 @@ class RadioButtonViewController: BaseViewController { setupModel() } + override func allTextFields() -> [UITextField]? { [labelTextField, childTextField] } + func setupForm() { addFormRow(label: "Disabled", view: .makeWrapper(for: disabledSwitch)) addFormRow(label: "Surface", view: surfacePickerSelectorView) diff --git a/VDSSample/ViewControllers/TextEntryFieldViewController.swift b/VDSSample/ViewControllers/TextEntryFieldViewController.swift index 4b01bfb..48ff990 100644 --- a/VDSSample/ViewControllers/TextEntryFieldViewController.swift +++ b/VDSSample/ViewControllers/TextEntryFieldViewController.swift @@ -41,6 +41,8 @@ class TextEntryFieldViewController: BaseViewController { setupModel() } + override func allTextFields() -> [UITextField]? { [labelTextField, errorTextField, successTextField, helperTextField, widthTextField, tooltipTitleTextField, tooltipContentTextField] } + func setupForm(){ addFormRow(label: "Disabled", view: .makeWrapper(for: disabledSwitch)) addFormRow(label: "Required", view: .makeWrapper(for: requiredSwitch)) diff --git a/VDSSample/ViewControllers/TextLinkCaretViewController.swift b/VDSSample/ViewControllers/TextLinkCaretViewController.swift index 5ea48c6..2067d72 100644 --- a/VDSSample/ViewControllers/TextLinkCaretViewController.swift +++ b/VDSSample/ViewControllers/TextLinkCaretViewController.swift @@ -33,6 +33,8 @@ class TextLinkCaretViewController: BaseViewController { setupModel() } + override func allTextFields() -> [UITextField]? { [textField] } + func setupForm(){ addFormRow(label: "Surface", view: surfacePickerSelectorView) addFormRow(label: "Disabled", view: .makeWrapper(for: disabledSwitch)) diff --git a/VDSSample/ViewControllers/TextLinkViewController.swift b/VDSSample/ViewControllers/TextLinkViewController.swift index aab4b55..855f028 100644 --- a/VDSSample/ViewControllers/TextLinkViewController.swift +++ b/VDSSample/ViewControllers/TextLinkViewController.swift @@ -34,6 +34,8 @@ class TextLinkViewController: BaseViewController { setupModel() } + override func allTextFields() -> [UITextField]? { [textField] } + func setupForm(){ addFormRow(label: "Surface", view: surfacePickerSelectorView) addFormRow(label: "Disabled", view: .makeWrapper(for: disabledSwitch)) diff --git a/VDSSample/ViewControllers/ToggleViewController.swift b/VDSSample/ViewControllers/ToggleViewController.swift index b9d4b75..aaa5b6e 100644 --- a/VDSSample/ViewControllers/ToggleViewController.swift +++ b/VDSSample/ViewControllers/ToggleViewController.swift @@ -52,6 +52,8 @@ class ToggleViewController: BaseViewController { setupPicker() } + override func allTextFields() -> [UITextField]? { [onTextField, offTextField] } + func setupForm() { addFormRow(label: "Show Text", view: .makeWrapper(for: showTextSwitch))