From e8a7fb7246e1bb77e1320272fdbffaea94438718 Mon Sep 17 00:00:00 2001 From: Matt Bruce Date: Fri, 21 Jul 2023 15:14:53 -0500 Subject: [PATCH] reverted to use textfield delegate Signed-off-by: Matt Bruce --- VDSSample/Classes/Slider.swift | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/VDSSample/Classes/Slider.swift b/VDSSample/Classes/Slider.swift index 4dca0a0..d702c48 100644 --- a/VDSSample/Classes/Slider.swift +++ b/VDSSample/Classes/Slider.swift @@ -9,7 +9,7 @@ import Foundation import UIKit import VDS -class Slider: Control { +class Slider: Control, UITextFieldDelegate { var textField = NumericField().with { $0.translatesAutoresizingMaskIntoConstraints = false } var range = UISlider().with { $0.translatesAutoresizingMaskIntoConstraints = false } var maximumValue: Float = 0.0 { didSet { range.maximumValue = maximumValue }} @@ -19,6 +19,7 @@ class Slider: Control { addSubview(textField) addSubview(range) textField.pinTop() + textField.delegate = self textField.pinBottom() textField.pinLeading() textField.heightAnchor.constraint(equalToConstant: 44).isActive = true @@ -32,11 +33,6 @@ class Slider: Control { range.publisher(for: .valueChanged).sink { [weak self] slider in self?.valueChanged(newValue: slider.value) }.store(in: &subscribers) - - textField.numberPublisher.sink { [weak self] number in - guard let number else { return } - self?.valueChanged(newValue: number.floatValue) - }.store(in: &subscribers) } override func updateView() { @@ -47,6 +43,15 @@ class Slider: Control { value = newValue sendActions(for: .valueChanged) } + + func textFieldShouldReturn(_ textField: UITextField) -> Bool { + textField.resignFirstResponder() + if let text = textField.text, let n = NumberFormatter().number(from: text) { + valueChanged(newValue: n.floatValue) + } + return true + } + } extension NSNumber {