2013-04-10 3 views
2

Для моей пользовательской ячейки для простого примера у меня есть только один UITextField, есть ли способ получить ячейку becomeFirstResponder, которая только что вставлена ​​insertRowsAtIndexPaths?Обнаружение вставленной ячейки, а затем ее получениеFirstResponder

Мне нужен способ обнаружить это, чтобы он стал первым ответчиком ПОСЛЕ того, как он был вставлен, и , когда заканчивается анимация вставки.

Любые идеи или даже близко к нему?

С благодарностью

+0

У вас всегда будет вставлен один ряд? или возможно ли вставить несколько строк? то какой из них вы хотите в качестве первого ответчика? – chuthan20

+0

Всегда один ряд за раз. – mskw

ответ

2

Что-то вроде этого ??

- (void) insertRows 
{ 
    . 
    . 
    . 

    [tableView beginUpdates]; 
    [tableView insertRowsAtIndexPaths:indexPaths withRowAnimation:UITableViewRowAnimationRight]; 
    [tableView endUpdates]; 

    NSIndexPath p = [indexPaths lastObject]; 

    MyCustomCell *cell = [cellForRowAtIndexPath:p]; 
    [cell.textField becomeFirstResponder]; 
} 
+0

Как это будет работать, если я также использую деактивацию ячейки на cellForRowAtIndexPath? После выполнения insertRowsAtIndexPaths вызывается cellForRowAtIndexPath. Есть ли обратный вызов, который я могу использовать, чтобы определить, когда заканчивается анимация. – mskw

+0

Кроме того, зачем вам [tableView beginUpdates]/endUpdates? Без него анимация отлично работает. – mskw

+0

если он работает без begin/endUpdates, тогда это нормально .. но вам придется прокручивать таблицуView до недавно вставленной строки, чтобы было видно [tableView scrollToRowAtIndexPath: p atScrollPosition: UITableViewScrollPositionTop анимированный: ДА]; MyCustomCell * cell = [cellForRowAtIndexPath: p]; [cell.textField становитсяFirstResponder]; – chuthan20

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