reverted to use textfield delegate
Signed-off-by: Matt Bruce <matt.bruce@verizon.com>
This commit is contained in:
parent
f90711415f
commit
e8a7fb7246
@ -9,7 +9,7 @@ import Foundation
|
|||||||
import UIKit
|
import UIKit
|
||||||
import VDS
|
import VDS
|
||||||
|
|
||||||
class Slider: Control {
|
class Slider: Control, UITextFieldDelegate {
|
||||||
var textField = NumericField().with { $0.translatesAutoresizingMaskIntoConstraints = false }
|
var textField = NumericField().with { $0.translatesAutoresizingMaskIntoConstraints = false }
|
||||||
var range = UISlider().with { $0.translatesAutoresizingMaskIntoConstraints = false }
|
var range = UISlider().with { $0.translatesAutoresizingMaskIntoConstraints = false }
|
||||||
var maximumValue: Float = 0.0 { didSet { range.maximumValue = maximumValue }}
|
var maximumValue: Float = 0.0 { didSet { range.maximumValue = maximumValue }}
|
||||||
@ -19,6 +19,7 @@ class Slider: Control {
|
|||||||
addSubview(textField)
|
addSubview(textField)
|
||||||
addSubview(range)
|
addSubview(range)
|
||||||
textField.pinTop()
|
textField.pinTop()
|
||||||
|
textField.delegate = self
|
||||||
textField.pinBottom()
|
textField.pinBottom()
|
||||||
textField.pinLeading()
|
textField.pinLeading()
|
||||||
textField.heightAnchor.constraint(equalToConstant: 44).isActive = true
|
textField.heightAnchor.constraint(equalToConstant: 44).isActive = true
|
||||||
@ -32,11 +33,6 @@ class Slider: Control {
|
|||||||
range.publisher(for: .valueChanged).sink { [weak self] slider in
|
range.publisher(for: .valueChanged).sink { [weak self] slider in
|
||||||
self?.valueChanged(newValue: slider.value)
|
self?.valueChanged(newValue: slider.value)
|
||||||
}.store(in: &subscribers)
|
}.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() {
|
override func updateView() {
|
||||||
@ -47,6 +43,15 @@ class Slider: Control {
|
|||||||
value = newValue
|
value = newValue
|
||||||
sendActions(for: .valueChanged)
|
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 {
|
extension NSNumber {
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user