latest
This commit is contained in:
parent
eaad7f56f8
commit
cb981e29a9
@ -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
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -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)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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
|
||||
}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user