reverted to use textfield delegate

Signed-off-by: Matt Bruce <matt.bruce@verizon.com>
This commit is contained in:
Matt Bruce 2023-07-21 15:14:53 -05:00
parent f90711415f
commit e8a7fb7246

View File

@ -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 {