diff --git a/MVMCoreUI/Atomic/Atoms/FormFields/TextFields/Dropdown Fields/BaseDropdownEntryField.swift b/MVMCoreUI/Atomic/Atoms/FormFields/TextFields/Dropdown Fields/BaseDropdownEntryField.swift index 836eda24..cac63413 100644 --- a/MVMCoreUI/Atomic/Atoms/FormFields/TextFields/Dropdown Fields/BaseDropdownEntryField.swift +++ b/MVMCoreUI/Atomic/Atoms/FormFields/TextFields/Dropdown Fields/BaseDropdownEntryField.swift @@ -55,7 +55,7 @@ import UIKit @objc required public init?(coder: NSCoder) { super.init(coder: coder) - fatalError("DropdownEntryField does not support xib.") + fatalError("\(String(describing: Self.self)) does not support xib.") } required public init(model: MoleculeModelProtocol, _ delegateObject: MVMCoreUIDelegateObject?, _ additionalData: [AnyHashable: Any]?) { diff --git a/MVMCoreUI/Atomic/Atoms/FormFields/TextFields/Dropdown Fields/Item Dropdown/BaseItemPickerField.swift b/MVMCoreUI/Atomic/Atoms/FormFields/TextFields/Dropdown Fields/Item Dropdown/BaseItemPickerField.swift index 2b21e980..65163320 100644 --- a/MVMCoreUI/Atomic/Atoms/FormFields/TextFields/Dropdown Fields/Item Dropdown/BaseItemPickerField.swift +++ b/MVMCoreUI/Atomic/Atoms/FormFields/TextFields/Dropdown Fields/Item Dropdown/BaseItemPickerField.swift @@ -8,8 +8,23 @@ import UIKit -class BaseItemPickerField: BaseDropdownField { - - - +open class BaseItemPickerField: BaseDropdownField { + //-------------------------------------------------- + // MARK: - Outlets + //-------------------------------------------------- + + open var pickerView: UIPickerView? + + //-------------------------------------------------- + // MARK: - Properties + //-------------------------------------------------- + + /// Closure passed here will run as picker changes items. + public var observeDropdownChange: ((String, String) -> ())? + + /// Closure passed here will run upon dismissing the selection picker. + public var observeDropdownSelection: ((String) -> ())? + + /// When selecting for first responder, allow initial selected value to appear in empty text field. + public var setInitialValueInTextField = true } diff --git a/MVMCoreUI/Atomic/Atoms/FormFields/TextFields/Dropdown Fields/Item Dropdown/BaseItemPickerFieldModel.swift b/MVMCoreUI/Atomic/Atoms/FormFields/TextFields/Dropdown Fields/Item Dropdown/BaseItemPickerFieldModel.swift index e5912334..16c3a9a3 100644 --- a/MVMCoreUI/Atomic/Atoms/FormFields/TextFields/Dropdown Fields/Item Dropdown/BaseItemPickerFieldModel.swift +++ b/MVMCoreUI/Atomic/Atoms/FormFields/TextFields/Dropdown Fields/Item Dropdown/BaseItemPickerFieldModel.swift @@ -8,6 +8,11 @@ import UIKit -class BaseItemPickerFieldModel: BaseDropdownEntryFieldModel { +open class BaseItemPickerFieldModel: BaseDropdownEntryFieldModel { + //-------------------------------------------------- + // MARK: - Properties + //-------------------------------------------------- + + public override class var identifier: String { "" } } diff --git a/MVMCoreUI/Atomic/Atoms/FormFields/TextFields/Dropdown Fields/Item Dropdown/MultiItemDropdownEntryField.swift b/MVMCoreUI/Atomic/Atoms/FormFields/TextFields/Dropdown Fields/Item Dropdown/MultiItemDropdownEntryField.swift index 2b4075c0..c51ec19a 100644 --- a/MVMCoreUI/Atomic/Atoms/FormFields/TextFields/Dropdown Fields/Item Dropdown/MultiItemDropdownEntryField.swift +++ b/MVMCoreUI/Atomic/Atoms/FormFields/TextFields/Dropdown Fields/Item Dropdown/MultiItemDropdownEntryField.swift @@ -9,13 +9,7 @@ import UIKit -open class MultiItemDropdownEntryField: BaseDropdownField { - //-------------------------------------------------- - // MARK: - Outlets - //-------------------------------------------------- - - open var pickerView: UIPickerView? - +open class MultiItemDropdownEntryField: BaseItemPickerField { //-------------------------------------------------- // MARK: - Properties //-------------------------------------------------- @@ -25,15 +19,6 @@ open class MultiItemDropdownEntryField: BaseDropdownField { dropdownModel?.components ?? [[]] } - /// When selecting for first responder, allow initial selected value to appear in empty text field. - public var setInitialValueInTextField = true - - /// Closure passed here will run as picker changes items. -// public var observeDropdownChange: ((String, String) -> ())? - - /// Closure passed here will run upon dismissing the selection picker. -// public var observeDropdownSelection: ((String) -> ())? - public var dropdownModel: MultiItemDropdownEntryFieldModel? { model as? MultiItemDropdownEntryFieldModel } diff --git a/MVMCoreUI/Atomic/Atoms/FormFields/TextFields/Dropdown Fields/Item Dropdown/MultiItemDropdownEntryFieldModel.swift b/MVMCoreUI/Atomic/Atoms/FormFields/TextFields/Dropdown Fields/Item Dropdown/MultiItemDropdownEntryFieldModel.swift index de087ac9..f27ad049 100644 --- a/MVMCoreUI/Atomic/Atoms/FormFields/TextFields/Dropdown Fields/Item Dropdown/MultiItemDropdownEntryFieldModel.swift +++ b/MVMCoreUI/Atomic/Atoms/FormFields/TextFields/Dropdown Fields/Item Dropdown/MultiItemDropdownEntryFieldModel.swift @@ -9,7 +9,7 @@ import Foundation -@objcMembers open class MultiItemDropdownEntryFieldModel: BaseDropdownEntryFieldModel { +@objcMembers open class MultiItemDropdownEntryFieldModel: BaseItemPickerFieldModel { //-------------------------------------------------- // MARK: - Properties //-------------------------------------------------- diff --git a/MVMCoreUI/Atomic/Atoms/FormFields/TextFields/TextEntryField.swift b/MVMCoreUI/Atomic/Atoms/FormFields/TextFields/TextEntryField.swift index 50aa5fbf..4fd2b5ac 100644 --- a/MVMCoreUI/Atomic/Atoms/FormFields/TextFields/TextEntryField.swift +++ b/MVMCoreUI/Atomic/Atoms/FormFields/TextFields/TextEntryField.swift @@ -96,6 +96,8 @@ import UIKit open override var text: String? { get { textField.text } set { + + NSRegularExpression(pattern: <#T##String#>, options: []) textField.text = newValue textEntryFieldModel?.text = newValue }