Adding another location to execute external code.

This commit is contained in:
Kevin G Christiano 2019-12-02 11:05:08 -05:00
parent 5e28b0bdc5
commit 65586a7568

View File

@ -22,8 +22,12 @@ open class ItemDropdownEntryField: BaseDropdownEntryField {
/// 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)->())?
/// Closure passed here will run upon dismissing the selection picker.
public var observeDropdownSelection: ((String)->())?
//--------------------------------------------------
// MARK: - Initializer
//--------------------------------------------------
@ -85,7 +89,7 @@ open class ItemDropdownEntryField: BaseDropdownEntryField {
guard !pickerData.isEmpty else { return }
if let pickerIndex = pickerView?.selectedRow(inComponent: 0) {
observeDropdownChange?(pickerData[pickerIndex])
observeDropdownSelection?(pickerData[pickerIndex])
}
}
}
@ -107,6 +111,7 @@ extension ItemDropdownEntryField: UIPickerViewDelegate, UIPickerViewDataSource {
@objc public func pickerView(_ pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int) {
text = pickerData[row]
observeDropdownChange?(pickerData[row])
}
}