2016-12-22 1 views
1

Когда я помещаю значение в свое третье текстовое поле, я получаю автоматически значение в моем второе текстовое поле с умножением на 10, но я не хочу изменять это значение, которое появляется во втором текстовом поле.Когда я помещаю значение в свое третье текстовое поле, я получаю автоматически значение в своем втором текстовом поле с умножением на 10

Ниже приводится мой код и метод, и я использую два экрана, один из них без ошибок, а второй - с ошибкой. this is with error

- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string 

{ 

    _hourlyrate.text=[NSString stringWithFormat:@"%.2f",[_avgsalary.text doubleValue]/208 ]; 


    _totalMcost.text=[NSString stringWithFormat:@"%.2f",[_hourlyrate.text doubleValue]*[_pepinMeeting.text doubleValue]*[_hoursOfmeeting.text doubleValue]]; 


    NSLog(@"avg: %@",_totalMcost.text); 

    return YES; 

} 
+0

Вы должны проверить, какой из ваших текстовых полей «обновляется»: 'if (textField == firstTextField) {// Сделать что-то} else if (textField == secondTextField) {// Сделать что-то} и т. Д. – Larme

+0

все еще я получаю ошибку @larme это мой код if (textField == _ avgsalary) { _hourlyrate.text = [NSString stringWithFormat: @ "%. 2f", [_ avgsalary.text doubleValue]/2080]; } еще если (TextField == _ hourlyrate) { _totalMcost.text = [NSString stringWithFormat: @ "% 2f", [_ hourlyrate.text doubleValue] * [_ pepinMeeting.text doubleValue] * [_ hoursOfmeeting.text doubleValue]] ; } –

+0

теперь я получаю ошибку в общей сложности. Не получается получить правильное умножение в целом @ larme –

ответ

0

При попытке доступа textfield.text в методе shouldChangeCharectersInRange, это даст вам старое значение перед заменой текста.

Чтобы получить обновленное значение поместить этот код в

- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string 

{ 

    double hourlyRateValue = 0.0; 
    if (textfield == _hourlyrate) { 
     hourlyRateValue = [textField.text stringByReplacingCharactersInRange:range withString:string] doubleValue]; // Use this value for calculation 

    } 
    return YES; 

} 

Пожалуйста, обратите внимание, что я написал этот код в текстовом редакторе. Проверьте синтаксис.

Смежные вопросы