iPad не подает ответчик - PullRequest
       26

iPad не подает ответчик

1 голос
/ 22 октября 2010

У меня есть таблица с 3 UITextFields, добавленными к представлениям содержимого ячеек (1 строка на раздел).У меня есть 4-й раздел, который я вставляю, чтобы я мог прокрутить определенное поле над клавиатурой.

Проблема, с которой я столкнулся (только на iPad), заключается в том, что когда в одном из текстовых полей есть firstResponder,не оставляет его, когда пользователь нажимает на другое поле.Есть ли различия в цепочке респондента на ipad?В приведенном ниже коде для моих контроллеров представления UITextFieldDelegate - textFieldShouldEndEditing не вызывается при прикосновении к другому полю.Нажатие кнопки «Готово» работает должным образом (если не было затронуто другое поле).

Что-то не так с кодом ниже?

- (BOOL)textFieldShouldBeginEditing:(UITextField *)textField {
    if (!_editing++) {
        [self.tableView insertSections:[NSIndexSet indexSetWithIndex:4] withRowAnimation:UITableViewRowAnimationNone];
    }

    // scroll to section number in the text fields tag
    [self.tableView scrollToRowAtIndexPath:[NSIndexPath indexPathForRow:0 inSection:textField.tag] atScrollPosition:UITableViewScrollPositionTop animated:YES];

    return YES;
}

- (void) textFieldDidBeginEditing:(UITextField *)textField {
    self.navigationItem.rightBarButtonItem = [[[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemDone target:textField action:@selector(resignFirstResponder)] autorelease]; 
}

- (BOOL)textFieldShouldEndEditing:(UITextField *)textField {
    if (_editing-- == 1) {
        // 
        [self.tableView deleteSections:[NSIndexSet indexSetWithIndex:4] withRowAnimation:UITableViewRowAnimationNone];
    }

    self.navigationItem.rightBarButtonItem = nil;

    // do something with the text here...

    return YES;
}

1 Ответ

0 голосов
/ 22 октября 2010

ОК, я нашел удовлетворительный обходной путь, похоже, что выполнение цикла выполнения до того, как запрос на удаление раздела устранит проблему. Я предполагаю, что это ошибка яблока? Для всех, кто беспокоится об этой проблеме - я запускаю iOS3.2.1 на iPad.

- (BOOL)textFieldShouldEndEditing:(UITextField *)textField {
    if (_editing == 1) {
        [self performSelector:@selector(hideFinalSection) withObject:nil afterDelay:0.0f];
    }
    else {
        _editing--;
    }

    self.navigationItem.rightBarButtonItem = nil;

        // do something with the text here...

    return YES;
}

- (void) hideFinalSection {
    if (!(--_editing)) { 
        [self.tableView deleteSections:[NSIndexSet indexSetWithIndex:4] withRowAnimation:UITableViewRowAnimationNone];
    }
}
...