2017-02-15 43 views
1

В моем приложении на экране регистрации у меня есть tableView, который содержит UITextField в каждой ячейке и кнопку Submit в нижнем колонтитуле. Все работает отлично, за исключением случаев, когда я ввожу значение в последние TextField и нажимаю кнопку отправки (без отставки клавиатуры). Моя функция не отображает значение, потому что значение вводится только при завершении редактирования текста. Я использую делегата для получения значения.iOS UITextField resignFirstResponder issue

Мой код:
В customcell.m:

- (void)textFieldDidEndEditing:(UITextField *)textField { 
    if ([textField.text length] >0) { 
    [self.cellImageview setImage:editImage]; 
    } 
    else{ 
    [self.cellImageview setImage:defaultImage]; 
    } 
    [_delegate signUpTableCell:self didUpdateValue:textField.text inTextField:textField]; 
} 

В моей ViewController:

-(void)signUpTableCell:(SignUpTableCell *)cell didUpdateValue:(NSString *)value inTextField:(UITextField *)textField { 
    NSLog(@"cell:%@ value: %@ textfield value:%@ ", cell, value, textField.text); 
    [registerDictionary setValue:value forKey:textField.placeholder]; 
    NSLog(@"registerDictionary:%@", registerDictionary); 
} 

Проблема:

Последнее значение TextField равно нулю, когда я нажимаю на кнопку отправки, возможно, потому, что -(void)signUpTableCell:(SignUpTableCell *)cell didUpdateValue:(NSString *)value inTextField:(UITextField *)textField не получает вызов, если TextField не закончит редактирование. Если я нахожусь в пустое место и схожу с клавиатуры, это работает отлично. Есть ли проблема с этой проблемой?

ответ

1

Вы попытались вручную позвонить по телефону resignFirstResponder() при нажатии кнопки?

+0

Да, я сделал, не работал. Он уходит с первого ответчика, но не может получить значение –

+0

Итак, ваша клавиатура действительно уходит, и вы вызываете метод 'textFieldDidEndEditing()', но 'didUpdateValue()' не вызывается? Можете ли вы проверить, вручную ли вы вызываете 'resignFirstResponder()' любой из этих методов? –

1

Добавить ниже код кнопки в представить:

[self.view endEditing:yes]; 

или использовать

[self.yourTableview.scrollView endEditing:yes]; 
+0

Уже сделал это, но все же я бы не получил значение в registerDictionary array –

0

Fixed его, сделав несколько изменений в моем коде. Я использовал [self.view endEditing:yes]; после получения значений от registerDictionary. Глупо обо мне.

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

  • Нет связанных вопросов^_^