使用来自单独 UITextfield 的数据自动更新 UITextfield
Auto update UITextfield with data from separate UITextfield
我在同一个 ViewController 上有三个 UITextfields
(customerRequestTextField
、fundsAvailableTextField
和 amountOwedMarketTextField
)。
我想设置 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)"
}
}
我在同一个 ViewController 上有三个 UITextfields
(customerRequestTextField
、fundsAvailableTextField
和 amountOwedMarketTextField
)。
我想设置 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)"
}
}