Swift-自动更新文本字段

Swift-自动更新文本字段,swift,live,self-updating,Swift,Live,Self Updating,我想获取这些文本字段,并在它们之间建立一个等式。我遇到的问题是在我的等式完成后自动更新最终文本字段 在这种情况下,我希望在更新车辆价格或更新服务合同时更新现金总价,而无需按下DP按钮 有人能给我一个如何完成这项工作的建议吗 代码: 我希望该功能能够自动完成,而不是按下(\u sender:Any)@IBOutlet func dpbutton() 这就是我一直在使用代理的地方 override func viewDidLoad() { super.viewDidLoad()

我想获取这些文本字段,并在它们之间建立一个等式。我遇到的问题是在我的等式完成后自动更新最终文本字段

在这种情况下,我希望在更新车辆价格或更新服务合同时更新现金总价,而无需按下DP按钮

有人能给我一个如何完成这项工作的建议吗

代码:

我希望该功能能够自动完成,而不是按下(\u sender:Any)@IBOutlet func dpbutton()

这就是我一直在使用代理的地方

 override func viewDidLoad() {
    super.viewDidLoad()
    totalCashPrice.delegate = self

}
func textFieldDidBeginEditing(textField: NSTextField!) {

}
func textFieldShouldEndEditing(textField: NSTextField!) -> Bool {
    return false
}
func textFieldShouldReturn(textField: NSTextField!) -> Bool {
    totalCashPrice.resignFirstResponder()
    return true
}

@IBAction func DPButtonPressed(_ sender: Any) {
    totalCashPrice.integerValue = vehiclePrice.integerValue + 
serviceContract.integerValue + salesTax.integerValue
    textFieldShouldEndEditing(textField: totalCashPrice)

Cocoa是事件驱动的。选择一个事件,让它驱动你

  • 文本字段是控件,可以配置为在每次值更改时(即用户键入字符)发出控件事件

  • 还可以将文本字段配置为发出如下通知:

  • 当用户离开文本字段等事件发生时,文本字段也会向其委托发送消息

你只需要决定你想要响应什么样的信号,然后配置一些东西,这样你就能得到那个信号。
只需向自己指定“车辆价格更新或服务合同更新”的含义,即什么样的用户操作被视为更新字段

你可以把一些代码与问题一起,将有助于解决这个问题你应该使用textfield delegate,它将根据事件自动激发,检查delegate你可以给我一个例子,我是新的编码,我已经添加了代表,但我甚至不知道从哪里开始的代码。我非常感谢大家对这一点的回答,所以谢谢你们,看到这个链接,设置textfield委托,并从代码中使用textfielddiden方法,一旦你完成了,它会自动调用l,然后按回车键你是救世主!我可能为了这件事花了5个小时的研究,你的第一个要点就是我一直在寻找的!非常感谢你。一个很好的简单解决方案iOS 13的方法是使用第二种方法(文本确实改变了通知)使用Combine框架建立一个发布和订阅管道,该管道结合贡献文本字段来设置结果文本字段/标签。xcode Mac OS没有太多教程或有用的地方,我非常感谢您的帮助
 override func viewDidLoad() {
    super.viewDidLoad()
    totalCashPrice.delegate = self

}
func textFieldDidBeginEditing(textField: NSTextField!) {

}
func textFieldShouldEndEditing(textField: NSTextField!) -> Bool {
    return false
}
func textFieldShouldReturn(textField: NSTextField!) -> Bool {
    totalCashPrice.resignFirstResponder()
    return true
}

@IBAction func DPButtonPressed(_ sender: Any) {
    totalCashPrice.integerValue = vehiclePrice.integerValue + 
serviceContract.integerValue + salesTax.integerValue
    textFieldShouldEndEditing(textField: totalCashPrice)