latest
This commit is contained in:
parent
eaad7f56f8
commit
cb981e29a9
@ -49,10 +49,7 @@
|
|||||||
|
|
||||||
if let selectedIndex = try typeContainer.decodeIfPresent(Int.self, forKey: .selectedIndex) {
|
if let selectedIndex = try typeContainer.decodeIfPresent(Int.self, forKey: .selectedIndex) {
|
||||||
self.selectedIndex = selectedIndex
|
self.selectedIndex = selectedIndex
|
||||||
}
|
baseValue = options.indices.contains(selectedIndex) ? options[selectedIndex] : nil
|
||||||
|
|
||||||
if let index = selectedIndex {
|
|
||||||
baseValue = options.indices.contains(index) ? options[index] : nil
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -60,9 +60,11 @@ open class MultiItemDropdownEntryField: BaseItemPickerEntryField {
|
|||||||
let rowText = dropdownModel?.selectedRowText
|
let rowText = dropdownModel?.selectedRowText
|
||||||
else { return }
|
else { return }
|
||||||
|
|
||||||
|
// Update observing function and update text UI.
|
||||||
observeDropdownChange?(text ?? "", rowText)
|
observeDropdownChange?(text ?? "", rowText)
|
||||||
text = rowText
|
text = rowText
|
||||||
|
|
||||||
|
// Set row index value of selected component.
|
||||||
for component in 0..<componentCount {
|
for component in 0..<componentCount {
|
||||||
let pickerIndex = pickerView?.selectedRow(inComponent: component)
|
let pickerIndex = pickerView?.selectedRow(inComponent: component)
|
||||||
dropdownModel?.selectedIndexes[component] = pickerIndex
|
dropdownModel?.selectedIndexes[component] = pickerIndex
|
||||||
@ -88,6 +90,7 @@ open class MultiItemDropdownEntryField: BaseItemPickerEntryField {
|
|||||||
let rowText = dropdownModel?.selectedRowText
|
let rowText = dropdownModel?.selectedRowText
|
||||||
else { return }
|
else { return }
|
||||||
|
|
||||||
|
// update observing function with most recent selection.
|
||||||
observeDropdownSelection?(rowText)
|
observeDropdownSelection?(rowText)
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -101,8 +104,9 @@ open class MultiItemDropdownEntryField: BaseItemPickerEntryField {
|
|||||||
guard let model = model as? MultiItemDropdownEntryFieldModel else { return }
|
guard let model = model as? MultiItemDropdownEntryFieldModel else { return }
|
||||||
|
|
||||||
if let pickerView = pickerView {
|
if let pickerView = pickerView {
|
||||||
for (component, index) in model.selectedIndexes {
|
// Select initial rows if selectedIndexes retains value.
|
||||||
self.pickerView(pickerView, didSelectRow: index, inComponent: component)
|
for (component, row) in model.selectedIndexes {
|
||||||
|
self.pickerView(pickerView, didSelectRow: row, inComponent: component)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -31,20 +31,20 @@ import Foundation
|
|||||||
return selectedRowText
|
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 {
|
public var selectedRowText: String {
|
||||||
|
|
||||||
var text = ""
|
var text = ""
|
||||||
|
|
||||||
for i in 0..<components.count {
|
for i in 0..<components.count {
|
||||||
let pickerIndex = selectedIndexes[i] ?? 0
|
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 {
|
} else {
|
||||||
|
text += components[i][pickerIndex] + (i == components.count - 1 ? "" : " ")
|
||||||
}
|
}
|
||||||
text += components[i][pickerIndex] + (i == components.count - 1 ? "" : " ")
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return text
|
return text
|
||||||
|
|||||||
@ -105,13 +105,11 @@ import UIKit
|
|||||||
let range = NSRange(newText.startIndex..., in: newText)
|
let range = NSRange(newText.startIndex..., in: newText)
|
||||||
|
|
||||||
if let regex = try? NSRegularExpression(pattern: regex) {
|
if let regex = try? NSRegularExpression(pattern: regex) {
|
||||||
let afterText = regex.stringByReplacingMatches(in: newText,
|
let maskedText = regex.stringByReplacingMatches(in: newText,
|
||||||
range: range,
|
range: range,
|
||||||
withTemplate: mask
|
withTemplate: mask)
|
||||||
)
|
textField.text = maskedText
|
||||||
print(afterText)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
textField.text = newValue
|
textField.text = newValue
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user