This commit is contained in:
Kevin G Christiano 2021-02-16 10:38:43 -05:00
parent bc375347db
commit 4f568ecbc8
3 changed files with 13 additions and 19 deletions

View File

@ -16,7 +16,7 @@ open class BaseItemPickerEntryField: BaseDropdownEntryField, UIPickerViewDelegat
// MARK: - Outlets // MARK: - Outlets
//-------------------------------------------------- //--------------------------------------------------
open var pickerView: UIPickerView? open lazy var pickerView = UIPickerView.addPicker(to: textField, delegate: self, dismissAction: #selector(dismissFieldInput))
//-------------------------------------------------- //--------------------------------------------------
// MARK: - Properties // MARK: - Properties
@ -38,7 +38,6 @@ open class BaseItemPickerEntryField: BaseDropdownEntryField, UIPickerViewDelegat
@objc open override func setupFieldContainerContent(_ container: UIView) { @objc open override func setupFieldContainerContent(_ container: UIView) {
super.setupFieldContainerContent(container) super.setupFieldContainerContent(container)
pickerView = UIPickerView.addPicker(to: textField, delegate: self, dismissAction: #selector(dismissFieldInput))
textField.hideBlinkingCaret = true textField.hideBlinkingCaret = true
textField.autocorrectionType = .no textField.autocorrectionType = .no
uiTextFieldDelegate = self uiTextFieldDelegate = self
@ -46,8 +45,8 @@ open class BaseItemPickerEntryField: BaseDropdownEntryField, UIPickerViewDelegat
@objc public func setPickerDelegates(delegate: UIPickerViewDelegate & UIPickerViewDataSource) { @objc public func setPickerDelegates(delegate: UIPickerViewDelegate & UIPickerViewDataSource) {
pickerView?.delegate = delegate pickerView.delegate = delegate
pickerView?.dataSource = delegate pickerView.dataSource = delegate
} }
//-------------------------------------------------- //--------------------------------------------------
@ -57,8 +56,6 @@ open class BaseItemPickerEntryField: BaseDropdownEntryField, UIPickerViewDelegat
public override func set(with model: MoleculeModelProtocol, _ delegateObject: MVMCoreUIDelegateObject?, _ additionalData: [AnyHashable: Any]?) { public override func set(with model: MoleculeModelProtocol, _ delegateObject: MVMCoreUIDelegateObject?, _ additionalData: [AnyHashable: Any]?) {
super.set(with: model, delegateObject, additionalData) super.set(with: model, delegateObject, additionalData)
guard let model = model as? BaseItemPickerEntryFieldModel else { return }
setPickerDelegates(delegate: self) setPickerDelegates(delegate: self)
} }

View File

@ -54,7 +54,8 @@ open class ItemDropdownEntryField: BaseItemPickerEntryField {
guard !pickerData.isEmpty else { return } guard !pickerData.isEmpty else { return }
if setInitialValueInTextField, let pickerIndex = pickerView?.selectedRow(inComponent: 0) { if setInitialValueInTextField {
let pickerIndex = pickerView.selectedRow(inComponent: 0)
observeDropdownChange?(text ?? "", pickerData[pickerIndex]) observeDropdownChange?(text ?? "", pickerData[pickerIndex])
text = pickerData[pickerIndex] text = pickerData[pickerIndex]
itemDropdownEntryFieldModel?.selectedIndex = pickerIndex itemDropdownEntryFieldModel?.selectedIndex = pickerIndex
@ -72,9 +73,7 @@ open class ItemDropdownEntryField: BaseItemPickerEntryField {
guard !pickerData.isEmpty else { return } guard !pickerData.isEmpty else { return }
if let pickerIndex = pickerView?.selectedRow(inComponent: 0) { observeDropdownSelection?(pickerData[pickerView.selectedRow(inComponent: 0)])
observeDropdownSelection?(pickerData[pickerIndex])
}
} }
public override func set(with model: MoleculeModelProtocol, _ delegateObject: MVMCoreUIDelegateObject?, _ additionalData: [AnyHashable: Any]?) { public override func set(with model: MoleculeModelProtocol, _ delegateObject: MVMCoreUIDelegateObject?, _ additionalData: [AnyHashable: Any]?) {
@ -84,8 +83,8 @@ open class ItemDropdownEntryField: BaseItemPickerEntryField {
pickerData = model.options pickerData = model.options
if let pickerView = pickerView, let index = model.selectedIndex { if let index = model.selectedIndex {
self.pickerView?.selectRow(index, inComponent: 0, animated: false) self.pickerView.selectRow(index, inComponent: 0, animated: false)
self.pickerView(pickerView, didSelectRow: index, inComponent: 0) self.pickerView(pickerView, didSelectRow: index, inComponent: 0)
} }
} }

View File

@ -66,7 +66,7 @@ open class MultiItemDropdownEntryField: BaseItemPickerEntryField {
// Set row index value of selected component. // Set row index value of selected component.
for component in 0..<componentCount { for component in 0..<componentCount {
let pickerIndex = pickerView?.selectedRow(inComponent: component) let pickerIndex = pickerView.selectedRow(inComponent: component)
dropdownModel?.selectedIndexes[component] = pickerIndex dropdownModel?.selectedIndexes[component] = pickerIndex
} }
} }
@ -103,12 +103,10 @@ open class MultiItemDropdownEntryField: BaseItemPickerEntryField {
guard let model = model as? MultiItemDropdownEntryFieldModel else { return } guard let model = model as? MultiItemDropdownEntryFieldModel else { return }
if let pickerView = pickerView { // Select initial rows if selectedIndexes retains value.
// Select initial rows if selectedIndexes retains value. for (component, row) in model.selectedIndexes {
for (component, row) in model.selectedIndexes { self.pickerView.selectRow(row, inComponent: component, animated: false)
self.pickerView?.selectRow(row, inComponent: component, animated: false) self.pickerView(pickerView, didSelectRow: row, inComponent: component)
self.pickerView(pickerView, didSelectRow: row, inComponent: component)
}
} }
} }