У меня есть текстовое поле в калькуляторе подсказок. Я хочу, чтобы калькулятор подсказок обновил все поля моего калькулятора.Swift 2: вызов метода после нажатия Return в UITextField
С текущим кодом, который у меня есть, по любой причине. Он не вызывает calcTip() (или, по крайней мере, пока он не кажется) до тех пор, пока я не вернусь один раз, не введите другое (или то же) значение и не вернусь снова.
Я действительно близок к тому, что это приложение работает именно так, как я этого хочу, и мне кажется, что я всего в 1 или 2 строках.
My ViewController соответствует UITextFieldDelegate, и я объявил amountBeforeTaxTextField.delegate = self in viewDidLoad.
TextShouldReturn:
func textFieldShouldReturn(textField: UITextField) -> Bool {
amountBeforeTaxTextField.clearsOnBeginEditing = true
amountBeforeTaxTextField.becomeFirstResponder()
calcTip()
amountBeforeTaxTextField.resignFirstResponder()
return true
}
calcTip():
func calcTip() {
let tip = tipCalc.calculateTip()
let total = tipCalc.calculateTotal()
let tax = tipCalc.calculateTax()
let perPerson = total/Float(Int(partySizeSlider.value))
tipCalc.tipPercentage = (tipPercentageSlider.value)
tipCalc.amountBeforeTax = (amountBeforeTaxTextField.text! as
NSString).floatValue
tipCalc.taxPercentage = (taxPercentageSlider.value)
resultLabel.text = String(format: "Tip $%.2f, Tax: $%.2f Total: $%.2f", tip, tax, total)
perPersonLabel.text = String(format: "Per-Person Total: $%.2f", perPerson)
}
Примечание: У меня есть один и тот же результат с & без .becomeFirstResponder()
Спасибо за чтение.
В чем смысл вызовов 'getFirstResponder()' и 'resignFirstResponder()'? –
@AaronBrager resignFirstResponder закрывает клавиатуру, когда вы нажимаете enter. Не уверен в том, чтобы стать. – TrickSpades
Почему вы хотите, чтобы он стал 'startFesponder()' и 'resignFirstResponder()' сразу? не следует «resignFirstResponder()» после вычисления? move 'amountBeforeTaxTextField.resignFirstResponder()' в нижней части 'calcTip()' – Xrait