From cee2209dc6edeb8a5b3b164e093e638fba1e1310 Mon Sep 17 00:00:00 2001 From: Matt Bruce Date: Fri, 21 Jul 2023 08:14:59 -0500 Subject: [PATCH] updated TextField Signed-off-by: Matt Bruce --- VDSSample/Classes/TextField.swift | 25 ++++++++++++++++++++++++- 1 file changed, 24 insertions(+), 1 deletion(-) diff --git a/VDSSample/Classes/TextField.swift b/VDSSample/Classes/TextField.swift index 7f1c499..2cddac1 100644 --- a/VDSSample/Classes/TextField.swift +++ b/VDSSample/Classes/TextField.swift @@ -11,6 +11,7 @@ import VDS import VDSFormControlsTokens public class TextField: UITextField { + public var isNumeric: Bool = false public var textPadding = UIEdgeInsets( @@ -23,12 +24,29 @@ public class TextField: UITextField { public override init(frame: CGRect) { super.init(frame: frame) font = TextStyle.bodyLarge.font + setup() } - + public required init?(coder: NSCoder) { fatalError("init(coder:) has not been implemented") } + public func setup() { + let keypadToolbar: UIToolbar = UIToolbar() + + // add a done button to the numberpad + keypadToolbar.items=[ + UIBarButtonItem(barButtonSystemItem: UIBarButtonItem.SystemItem.flexibleSpace, target: self, action: nil), + UIBarButtonItem(title: "Done", style: UIBarButtonItem.Style.done, target: self, action: #selector(UITextField.resignFirstResponder)) + ] + keypadToolbar.sizeToFit() + + // add a toolbar with a done button above the number pad + inputAccessoryView = keypadToolbar + keyboardType = .alphabet + returnKeyType = .done + } + public override func textRect(forBounds bounds: CGRect) -> CGRect { layer.borderColor = UIColor.black.cgColor layer.borderWidth = VDSFormControls.widthBorder @@ -53,4 +71,9 @@ public class NumericField: TextField { public required init?(coder: NSCoder) { fatalError("init(coder:) has not been implemented") } + + public override func setup() { + super.setup() + keyboardType = .numberPad + } }