| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081 |
- //
- // DoubleRangeTableViewCell.swift
- // LoopKitUI
- //
- // Created by Michael Pangburn on 1/3/19.
- // Copyright © 2019 LoopKit Authors. All rights reserved.
- //
- import UIKit
- import LoopKit
- protocol DoubleRangeTableViewCellDelegate: AnyObject {
- func doubleRangeTableViewCellDidBeginEditing(_ cell: DoubleRangeTableViewCell)
- func doubleRangeTableViewCellDidUpdateRange(_ cell: DoubleRangeTableViewCell)
- }
- class DoubleRangeTableViewCell: UITableViewCell {
- @IBOutlet weak var titleLabel: UILabel!
- @IBOutlet weak var minValueTextField: PaddedTextField! {
- didSet {
- minValueTextField.delegate = self
- minValueTextField.addTarget(self, action: #selector(textFieldEditingChanged), for: .editingChanged)
- }
- }
- @IBOutlet weak var maxValueTextField: PaddedTextField! {
- didSet {
- maxValueTextField.delegate = self
- maxValueTextField.addTarget(self, action: #selector(textFieldEditingChanged), for: .editingChanged)
- }
- }
- @IBOutlet weak var unitLabel: UILabel!
- var numberFormatter = NumberFormatter()
- var range: DoubleRange? {
- get {
- guard
- let minValueString = minValueTextField.text,
- let minValue = numberFormatter.number(from: minValueString)?.doubleValue,
- let maxValueString = maxValueTextField.text,
- let maxValue = numberFormatter.number(from: maxValueString)?.doubleValue
- else {
- return nil
- }
- return DoubleRange(minValue: minValue, maxValue: maxValue)
- }
- set {
- guard let newValue = newValue else {
- minValueTextField.text = nil
- maxValueTextField.text = nil
- return
- }
- minValueTextField.text = numberFormatter.string(from: newValue.minValue)
- maxValueTextField.text = numberFormatter.string(from: newValue.maxValue)
- }
- }
- weak var delegate: DoubleRangeTableViewCellDelegate?
- @objc private func textFieldEditingChanged() {
- delegate?.doubleRangeTableViewCellDidUpdateRange(self)
- }
- }
- extension DoubleRangeTableViewCell: UITextFieldDelegate {
- func textFieldDidBeginEditing(_ textField: UITextField) {
- delegate?.doubleRangeTableViewCellDidBeginEditing(self)
- }
- func textFieldDidEndEditing(_ textField: UITextField) {
- delegate?.doubleRangeTableViewCellDidUpdateRange(self)
- }
- }
|