multi select
This commit is contained in:
parent
cb981e29a9
commit
a56fd32b16
@ -85,6 +85,7 @@ open class ItemDropdownEntryField: BaseItemPickerEntryField {
|
|||||||
pickerData = model.options
|
pickerData = model.options
|
||||||
|
|
||||||
if let pickerView = pickerView, let index = model.selectedIndex {
|
if let pickerView = pickerView, let index = model.selectedIndex {
|
||||||
|
self.pickerView?.selectRow(index, inComponent: 0, animated: false)
|
||||||
self.pickerView(pickerView, didSelectRow: index, inComponent: 0)
|
self.pickerView(pickerView, didSelectRow: index, inComponent: 0)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -106,6 +106,7 @@ open class MultiItemDropdownEntryField: BaseItemPickerEntryField {
|
|||||||
if let pickerView = pickerView {
|
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(pickerView, didSelectRow: row, inComponent: component)
|
self.pickerView(pickerView, didSelectRow: row, inComponent: component)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -133,12 +134,13 @@ open class MultiItemDropdownEntryField: BaseItemPickerEntryField {
|
|||||||
@objc public func pickerView(_ pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int) {
|
@objc public func pickerView(_ pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int) {
|
||||||
|
|
||||||
guard !pickerComponents.isEmpty,
|
guard !pickerComponents.isEmpty,
|
||||||
!pickerComponents[component].isEmpty,
|
!pickerComponents[component].isEmpty
|
||||||
let rowText = dropdownModel?.selectedRowText
|
|
||||||
else { return }
|
else { return }
|
||||||
|
|
||||||
observeDropdownChange?(text ?? "", rowText)
|
let oldText = text ?? ""
|
||||||
text = rowText
|
|
||||||
dropdownModel?.selectedIndexes[component] = row
|
dropdownModel?.selectedIndexes[component] = row
|
||||||
|
let newText = dropdownModel?.selectedRowText
|
||||||
|
observeDropdownChange?(oldText, newText ?? "")
|
||||||
|
text = newText
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -35,8 +35,8 @@
|
|||||||
public var keyboardOverride: String?
|
public var keyboardOverride: String?
|
||||||
public var type: EntryType?
|
public var type: EntryType?
|
||||||
public var clearTextOnTap: Bool = false
|
public var clearTextOnTap: Bool = false
|
||||||
public var displayFormat: String? = "(?=\\d{5})\\d"
|
public var displayFormat: String?
|
||||||
public var displayMask: String? = "•"
|
public var displayMask: String?
|
||||||
|
|
||||||
//--------------------------------------------------
|
//--------------------------------------------------
|
||||||
// MARK: - Methods
|
// MARK: - Methods
|
||||||
@ -103,6 +103,7 @@
|
|||||||
case type
|
case type
|
||||||
case clearTextOnTap
|
case clearTextOnTap
|
||||||
case displayFormat
|
case displayFormat
|
||||||
|
case displayMask
|
||||||
}
|
}
|
||||||
|
|
||||||
//--------------------------------------------------
|
//--------------------------------------------------
|
||||||
@ -116,6 +117,7 @@
|
|||||||
placeholder = try typeContainer.decodeIfPresent(String.self, forKey: .placeholder)
|
placeholder = try typeContainer.decodeIfPresent(String.self, forKey: .placeholder)
|
||||||
displayFormat = try typeContainer.decodeIfPresent(String.self, forKey: .displayFormat)
|
displayFormat = try typeContainer.decodeIfPresent(String.self, forKey: .displayFormat)
|
||||||
keyboardOverride = try typeContainer.decodeIfPresent(String.self, forKey: .keyboardOverride)
|
keyboardOverride = try typeContainer.decodeIfPresent(String.self, forKey: .keyboardOverride)
|
||||||
|
displayMask = try typeContainer.decodeIfPresent(String.self, forKey: .displayMask)
|
||||||
type = try typeContainer.decodeIfPresent(EntryType.self, forKey: .type)
|
type = try typeContainer.decodeIfPresent(EntryType.self, forKey: .type)
|
||||||
|
|
||||||
if let clearTextOnTap = try typeContainer.decodeIfPresent(Bool.self, forKey: .clearTextOnTap) {
|
if let clearTextOnTap = try typeContainer.decodeIfPresent(Bool.self, forKey: .clearTextOnTap) {
|
||||||
@ -143,6 +145,7 @@
|
|||||||
try container.encodeIfPresent(type, forKey: .type)
|
try container.encodeIfPresent(type, forKey: .type)
|
||||||
try container.encodeIfPresent(displayFormat, forKey: .displayFormat)
|
try container.encodeIfPresent(displayFormat, forKey: .displayFormat)
|
||||||
try container.encodeIfPresent(keyboardOverride, forKey: .keyboardOverride)
|
try container.encodeIfPresent(keyboardOverride, forKey: .keyboardOverride)
|
||||||
|
try container.encodeIfPresent(displayMask, forKey: .displayMask)
|
||||||
try container.encode(enabledTextColor, forKey: .enabledTextColor)
|
try container.encode(enabledTextColor, forKey: .enabledTextColor)
|
||||||
try container.encode(disabledTextColor, forKey: .disabledTextColor)
|
try container.encode(disabledTextColor, forKey: .disabledTextColor)
|
||||||
try container.encode(clearTextOnTap, forKey: .clearTextOnTap)
|
try container.encode(clearTextOnTap, forKey: .clearTextOnTap)
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user