我在同一ViewController上有三个UITextfieldscustomerRequestTextFieldfundsAvailableTextFieldamountOwedMarketTextField)。

我想设置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

    }

最佳答案

您需要将目标添加到要监听其更改的文本字段中

// 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)"
   }
}

关于swift - 使用来自单独的UITextfield的数据自动更新UITextfield,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/55938017/

10-10 10:11