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

View File

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

View File

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