swift - 使用单独 UITextfield 中的数据自动更新 UITextfield

标签 swift notifications uitextfield listener observers

我在同一个 ViewController 上有三个 UITextfields(customerRequestTextFieldfundsAvailableTextFieldamountOwedMarketTextField)。

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

相关文章:

ios - 如何在 Swift 中发送 POST 参数?

ios - 从 ARKit 获取特征点

c# iOS 10 通知 - GetDictionaryOfValuesFromKeys() 错误

ios - 关闭 UITextField 的键盘

iphone - 使用 UITextField 中的号码调用电话

ios - Firebase 身份验证登录必须允许单一设备登录

ios - 在 Swift 中,自定义 View 的 drawRect 未正确更新

android - 如何在没有上下文的情况下显示弹出消息

android - RemoteView 不在自定义通知中显示按钮

ios - 如何在 UITextFieldDelegate 中进行不同的检查