Как мне обновить textfield2 на основе редактирования textfield1?
Мне нравится обновлять textfield2, как только totalAmount был отредактирован, я пытаюсь сделать следующее:
totalAmount.addTarget(self, action: "changeTextField2:", forControlEvents: UIControlEvents.EditingDidEndOnExit)
func changeTextField2(textField: UITextField) {
print("Total amount: \(totalAmount.text)")
//amount vat - calculate vat based on textField
amountVAT.text = "88"
}
И я сохраняю значения текстового поля с
func newItem(){
let context = self.context
let ent = NSEntityDescription.entityForName("List", inManagedObjectContext: context)
let nItem = List(entity: ent!, insertIntoManagedObjectContext: context)
let numberFormatter = NSNumberFormatter()
nItem.amountVAT = numberFormatter.numberFromString(amountVAT.text!)
.....more values
nItem.invoiceImage = UIImagePNGRepresentation(imageHolder.image!)
do {
try context.save()
} catch {
print(error)
}
}
func saveValues(sender: AnyObject) {
if nItem != nil {
editItem()
} else {
newItem()
}
dismissVC()
}
3 ответа
Решение
Это можно сделать с помощью метода UITextFieldDelegate, используя эту функцию 1.)
textField1.delegate = self
2.)
func textFieldDidEndEditing(textField: UITextField)
{
if textField == textField1
{
textField2.text = textField1.text
}
}
Теперь вам решать, как вы измените общее количество.
Используйте функцию делегата UITextField
- textFieldDidEndEditing:
для вашего textField1. Оказавшись в этой функции, вы можете получить значение textField1 и вы можете редактировать textField2.
Измените код на этот totalAmount.addTarget(self, action: "changeTextField2:", forControlEvents: UIControlEvents.EditingChanged)
т.е. изменить UIControlEvents на "EditingChanged"