This commit is contained in:
Kevin G Christiano 2021-02-15 10:37:15 -05:00
parent eaad7f56f8
commit cb981e29a9
4 changed files with 16 additions and 17 deletions

View File

@ -49,10 +49,7 @@
if let selectedIndex = try typeContainer.decodeIfPresent(Int.self, forKey: .selectedIndex) {
self.selectedIndex = selectedIndex
}
if let index = selectedIndex {
baseValue = options.indices.contains(index) ? options[index] : nil
baseValue = options.indices.contains(selectedIndex) ? options[selectedIndex] : nil
}
}

View File

@ -60,9 +60,11 @@ open class MultiItemDropdownEntryField: BaseItemPickerEntryField {
let rowText = dropdownModel?.selectedRowText
else { return }
// Update observing function and update text UI.
observeDropdownChange?(text ?? "", rowText)
text = rowText
// Set row index value of selected component.
for component in 0..<componentCount {
let pickerIndex = pickerView?.selectedRow(inComponent: component)
dropdownModel?.selectedIndexes[component] = pickerIndex
@ -88,6 +90,7 @@ open class MultiItemDropdownEntryField: BaseItemPickerEntryField {
let rowText = dropdownModel?.selectedRowText
else { return }
// update observing function with most recent selection.
observeDropdownSelection?(rowText)
}
@ -101,8 +104,9 @@ open class MultiItemDropdownEntryField: BaseItemPickerEntryField {
guard let model = model as? MultiItemDropdownEntryFieldModel else { return }
if let pickerView = pickerView {
for (component, index) in model.selectedIndexes {
self.pickerView(pickerView, didSelectRow: index, inComponent: component)
// Select initial rows if selectedIndexes retains value.
for (component, row) in model.selectedIndexes {
self.pickerView(pickerView, didSelectRow: row, inComponent: component)
}
}
}

View File

@ -31,20 +31,20 @@ import Foundation
return selectedRowText
}
/// A string of the picker row concatenated by whitespace.
/// A string of the picker row concatenated by whitespace or delimiters if provided.
public var selectedRowText: String {
var text = ""
for i in 0..<components.count {
let pickerIndex = selectedIndexes[i] ?? 0
if i < components.count, let delimiters = delimiters {
text += components[i][pickerIndex] + delimiters[pickerIndex]
if i < components.count - 1, let delimiters = delimiters {
text += components[i][pickerIndex] + delimiters[i]
} else {
text += components[i][pickerIndex] + (i == components.count - 1 ? "" : " ")
}
text += components[i][pickerIndex] + (i == components.count - 1 ? "" : " ")
}
return text

View File

@ -105,13 +105,11 @@ import UIKit
let range = NSRange(newText.startIndex..., in: newText)
if let regex = try? NSRegularExpression(pattern: regex) {
let afterText = regex.stringByReplacingMatches(in: newText,
range: range,
withTemplate: mask
)
print(afterText)
let maskedText = regex.stringByReplacingMatches(in: newText,
range: range,
withTemplate: mask)
textField.text = maskedText
}
} else {
textField.text = newValue
}