This commit is contained in:
Kevin G Christiano 2021-02-16 12:30:01 -05:00
parent 4f568ecbc8
commit a2e6f3d5ff
2 changed files with 23 additions and 20 deletions

View File

@ -31,6 +31,14 @@ import Foundation
return selectedRowText
}
public func delimiter(for index: Int) -> String {
guard let delimiters = delimiters else { return " " }
guard index != components.count - 1 else { return "" }
return delimiters[index]
}
/// A string of the picker row concatenated by whitespace or delimiters if provided.
public var selectedRowText: String {
@ -38,13 +46,7 @@ import Foundation
for i in 0..<components.count {
let pickerIndex = selectedIndexes[i] ?? 0
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] + delimiter(for: i)
}
return text

View File

@ -98,20 +98,21 @@ import UIKit
set {
textEntryFieldModel?.text = newValue
if let regex = textEntryFieldModel?.displayFormat,
let mask = textEntryFieldModel?.displayMask,
let newText = newValue {
let range = NSRange(newText.startIndex..., in: newText)
if let regex = try? NSRegularExpression(pattern: regex) {
let maskedText = regex.stringByReplacingMatches(in: newText,
range: range,
withTemplate: mask)
textField.text = maskedText
}
} else {
guard let regex = textEntryFieldModel?.displayFormat,
let mask = textEntryFieldModel?.displayMask,
let newText = newValue
else {
textField.text = newValue
return
}
let range = NSRange(newText.startIndex..., in: newText)
if let regex = try? NSRegularExpression(pattern: regex) {
let maskedText = regex.stringByReplacingMatches(in: newText,
range: range,
withTemplate: mask)
textField.text = maskedText
}
}
}