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