使用来自单独UITextfield的数据自动更新UITextfield

问题描述 投票:0回答:1

我在同一个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

    }
swift notifications uitextfield listener observers
1个回答
0
投票

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

// 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)" 
   }
}
© www.soinside.com 2019 - 2024. All rights reserved.