Как обновить значение UIStepper, если мы изменим текст с UITextField? - PullRequest
0 голосов
/ 28 апреля 2019

Я хочу, чтобы пользователь мог вводить свой вес, набирая его вес, но также нажимая +/- с помощью степпера.

Это прекрасно работает, если они используют только один из способов.Они могут использовать степпер, и ценность будет складываться.Но если они изменяют текст вручную, а затем снова используют stepper, значение не изменится в соответствии с текстом.Вместо этого он следует за значением шагера.

import UIKit

class ViewController: UIViewController {
    @IBOutlet weak var txtWeight: UITextField!
    @IBOutlet weak var stpWeight: UIStepper!

    @IBAction func stpActWeight(_ sender: Any) {
        txtWeight.text = "\(stpWeight.value)"
    }
}

Я ожидаю, если я изменю значение txtWeight.txt на 50,0, затем нажмите + на шагере, тогда оно будет 51,0.В настоящее время фактическим выходным значением является значение шага (если я нажму + 3 раза, тогда значение шага равно 3,0).

1 Ответ

0 голосов
/ 29 апреля 2019

Вы можете попробовать

// add these in viewDidLoad 
txtWeight.addTarget(self, action: #selector(textFieldDidChange(_:)), for: .editingChanged)

и

func textFieldDidChange(_ textField: UITextField) {
   self.stpWeight.value = Double(textField.text!) ?? 0.0 
} 
@IBAction func stpActWeight(_ sender: Any) {
    txtWeight.text = "\(stpWeight.value)" 
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...