fixed issue with the dropdown not showing

Signed-off-by: Matt Bruce <matt.bruce@verizon.com>
This commit is contained in:
Matt Bruce 2024-05-20 11:45:33 -05:00
parent 3747e18aca
commit 1d5b631295

View File

@ -63,9 +63,6 @@ open class DropdownSelect: EntryFieldBase {
/// Array of options to show /// Array of options to show
open var options: [DropdownOptionModel] = [] { didSet { setNeedsUpdate() }} open var options: [DropdownOptionModel] = [] { didSet { setNeedsUpdate() }}
/// A callback when the selected option changes. Passes parameters (option).
open var onItemSelected: ((Int, DropdownOptionModel) -> Void)?
//-------------------------------------------------- //--------------------------------------------------
// MARK: - Private Properties // MARK: - Private Properties
//-------------------------------------------------- //--------------------------------------------------
@ -177,6 +174,7 @@ open class DropdownSelect: EntryFieldBase {
fieldStackView fieldStackView
.publisher(for: UITapGestureRecognizer()) .publisher(for: UITapGestureRecognizer())
.sink { [weak self] _ in .sink { [weak self] _ in
print("touch occured")
self?.launchPicker() self?.launchPicker()
} }
.store(in: &subscribers) .store(in: &subscribers)
@ -355,6 +353,7 @@ open class DropdownSelect: EntryFieldBase {
open override var canBecomeFirstResponder: Bool { true } open override var canBecomeFirstResponder: Bool { true }
open override func resignFirstResponder() -> Bool { open override func resignFirstResponder() -> Bool {
print("resign occurred")
if dropdownField.isFirstResponder { if dropdownField.isFirstResponder {
dropdownField.resignFirstResponder() dropdownField.resignFirstResponder()
} }
@ -375,7 +374,6 @@ extension DropdownSelect: UIPickerViewDelegate, UIPickerViewDataSource {
dropdownField.resignFirstResponder() dropdownField.resignFirstResponder()
} }
optionsPicker.isHidden = !optionsPicker.isHidden optionsPicker.isHidden = !optionsPicker.isHidden
setNeedsUpdate()
} }
public func numberOfComponents(in pickerView: UIPickerView) -> Int { public func numberOfComponents(in pickerView: UIPickerView) -> Int {
@ -396,6 +394,5 @@ extension DropdownSelect: UIPickerViewDelegate, UIPickerViewDataSource {
selectId = row selectId = row
updateSelectedOptionLabel(option: options[row]) updateSelectedOptionLabel(option: options[row])
sendActions(for: .valueChanged) sendActions(for: .valueChanged)
self.onItemSelected?(row, options[row])
} }
} }