Автоматическое обновление UITextfield данными из отдельного UITextfield - PullRequest
0 голосов
/ 01 мая 2019

У меня три UITextfields (customerRequestTextField, fundsAvailableTextField и amountOwedMarketTextField) на одном и том же ViewController.

Я бы хотел настроить amountOwedTextField так, чтобы он автоматически обновлял свое поле, вычитая данные, введенные в два других текстовых поля (customerRequestTextField - fundsAvailableTextField).

Должен ли я использовать NSNotifications? Или селектор? Или что-то еще?

Я попытался настроить селектор, но моя версия не работает.

Это объявлено глобально.


var amountOwedToMarket

Этот код находится в viewDidLoad().

amountOwedMarketTextField.text = String(amountOwedToMarket)

        amountOwedMarketTextField.addTarget(self, action: #selector(self.textFieldDidChange(sender:)), for: .editingChanged)

    }

Это объявлено за пределами viewDidLoad()

    @objc func textFieldDidChange(sender: UITextField) -> Int {

        return Int(amountCustomerRequestTextField.text!) ?? 21

    }

1 Ответ

0 голосов
/ 01 мая 2019

Вам нужно добавить цель к текстовым полям, которую вы хотите прослушать, с их изменениями

// in viewDidLoad
amountCustomerRequestTextField.addTarget(self, action: #selector(self.textFieldDidChange), for: .editingChanged)  
fundsAvailableTextField.addTarget(self, action: #selector(self.textFieldDidChange), for: .editingChanged)

@objc func textFieldDidChange(_ sender: UITextField) {  
   if let first =  Int(amountCustomerRequestTextField.text!) , let second = Int(fundsAvailableTextField.text!) { 
        amountOwedMarketTextField.text = "\(first - second)" 
   }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...