d
This commit is contained in:
8
src/Aux.swift
Normal file
8
src/Aux.swift
Normal file
@@ -0,0 +1,8 @@
|
||||
|
||||
/// Пропускаем лишь значения от UI
|
||||
///
|
||||
/// - Returns: Значение без префиксов "a:"/"u:"
|
||||
static func onlyAcceptUIText(_ s: String) -> String? {
|
||||
guard s.hasPrefix("u:") else { return nil }
|
||||
return String(s.dropFirst(2))
|
||||
}
|
||||
@@ -1,17 +1,17 @@
|
||||
import Foundation
|
||||
|
||||
class TextFieldValueOwner: Formatter {
|
||||
override func string(for obj: Any?) -> String? {
|
||||
guard let str = obj as? String else { return nil }
|
||||
return String(str.dropFirst(2))
|
||||
}
|
||||
override func string(for obj: Any?) -> String? {
|
||||
guard let str = obj as? String else { return nil }
|
||||
return String(str.dropFirst(2))
|
||||
}
|
||||
|
||||
override func getObjectValue(
|
||||
_ obj: AutoreleasingUnsafeMutablePointer<AnyObject?>?,
|
||||
for string: String,
|
||||
errorDescription error: AutoreleasingUnsafeMutablePointer<NSString?>?
|
||||
) -> Bool {
|
||||
obj?.pointee = "u:\(string)" as AnyObject
|
||||
return true
|
||||
}
|
||||
override func getObjectValue(
|
||||
_ obj: AutoreleasingUnsafeMutablePointer<AnyObject?>?,
|
||||
for string: String,
|
||||
errorDescription error: AutoreleasingUnsafeMutablePointer<NSString?>?
|
||||
) -> Bool {
|
||||
obj?.pointee = "u:\(string)" as AnyObject
|
||||
return true
|
||||
}
|
||||
}
|
||||
|
||||
@@ -12,10 +12,7 @@ final class VM: ObservableObject {
|
||||
$text
|
||||
// Исключаем конфликты от UI и App путём игнорирования спама.
|
||||
.debounce(for: .seconds(0.3), scheduler: DispatchQueue.main)
|
||||
// Нужны лишь значения от UI.
|
||||
.filter { $0.hasPrefix("u:") }
|
||||
// Убираем источник.
|
||||
.map { String($0.dropFirst(2)) }
|
||||
.compactMap(onlyAcceptUIText)
|
||||
.eraseToAnyPublisher(),
|
||||
sub: &subscriptions
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user