diff --git a/VDSSample/ViewControllers/InputStepperViewController.swift b/VDSSample/ViewControllers/InputStepperViewController.swift index cc70e1d..f252636 100644 --- a/VDSSample/ViewControllers/InputStepperViewController.swift +++ b/VDSSample/ViewControllers/InputStepperViewController.swift @@ -14,12 +14,14 @@ import Combine class InputStepperViewController: BaseViewController { var controlWidthTextField = TextField() + var controlWidthPercentageTextField = TextField() var defaultValueField = NumericField() var maxValueTextField = NumericField() var minValueTextField = NumericField() var trailingTextField = TextField() var widthTextField = NumericField() + var widthPercentageTextField = NumericField() var disabledSwitch = Toggle() var readOnlySwitch = Toggle() var requiredSwitch = Toggle() @@ -51,13 +53,15 @@ class InputStepperViewController: BaseViewController { addFormRow(label: "Surface", view: surfacePickerSelectorView) addFormRow(label: "Control Width", view: controlWidthTextField) + addFormRow(label: "ControlWidth Percentage", view: controlWidthPercentageTextField) addFormRow(label: "Default Value", view: defaultValueField) addFormRow(label: "Max Value", view: maxValueTextField) addFormRow(label: "Min Value", view: minValueTextField) addFormRow(label: "Trailing Text", view: trailingTextField) addFormRow(label: "Size", view: sizePickerSelectorView) - addFormRow(label: "Width", view: widthTextField) + addFormRow(label: "Width Value", view: widthTextField) + addFormRow(label: "Width Percentage", view: widthPercentageTextField) addFormRow(label: "Disabled", view: disabledSwitch) addFormRow(label: "Read Only", view: readOnlySwitch) addFormRow(label: "Required", view: requiredSwitch) @@ -73,8 +77,21 @@ class InputStepperViewController: BaseViewController { .textPublisher .sink { [weak self] text in self?.component.controlWidth = text + self?.controlWidthPercentageTextField.text = "" + self?.component.controlWidthPercentage = nil }.store(in: &subscribers) + controlWidthPercentageTextField + .numberPublisher + .sink { [weak self] number in + if let number { + self?.component.controlWidthPercentage = number.cgFloatValue + self?.controlWidthTextField.text = "" + } else { + self?.component.controlWidthPercentage = nil + } + }.store(in: &subscribers) + defaultValueField .numberPublisher .sink { [weak self] number in @@ -141,8 +158,24 @@ class InputStepperViewController: BaseViewController { widthTextField .numberPublisher .sink { [weak self] number in - self?.component.width = number?.cgFloatValue - }.store(in: &subscribers) + if let number { + self?.component.width = number.cgFloatValue + self?.widthPercentageTextField.text = "" + } else { + self?.component.width = nil + } + }.store(in: &subscribers) + + widthPercentageTextField + .numberPublisher + .sink { [weak self] number in + if let number { + self?.component.widthPercentage = number.cgFloatValue + self?.widthTextField.text = "" + } else { + self?.component.widthPercentage = nil + } + }.store(in: &subscribers) tooltipTitleTextField .textPublisher @@ -185,8 +218,8 @@ class InputStepperViewController: BaseViewController { component.labelText = "Quantity" component.helperText = "Add up to max lines." component.errorText = "You must choose a number of lines before advancing to the next step." - component.defaultValue = 2 - component.trailingText = "lines" + component.defaultValue = 88 + component.trailingText = "" component.controlWidth = "auto" trailingTextField.text = component.trailingText controlWidthTextField.text = component.controlWidth