Подтвердить что ты не робот

Сообщая UITextField, чтобы стать первым ответчиком, будучи встроенным в UITableViewCell

У меня есть UITextField, который является подзадачей UITableViewCell.

Когда мой просмотр загружается, я хочу, чтобы текстовое поле стало первым ответчиком. У меня есть указатель на текстовое поле в ячейке таблицы, поэтому для этого я пытаюсь:

[myTextField becomeFirstResponder];

Это возвращает NO все время, независимо от того, когда оно вызвано, что согласно документам означает, что текстовое поле отказалось стать первым ответчиком... Что я делаю неправильно?

Edit:

Текстовое поле правильно реагирует на касание. Тогда он поднимает клавиатуру. Это только когда вы говорите ему, чтобы он стал первым ответчиком программным путем, что проблема происходит.

4b9b3361

Ответ 1

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

Ответ 2

У меня была та же проблема с текстовым полем, которое я добавил в качестве подзаголовка в ячейку сгруппированной таблицы, но выяснил решение после того, как выкалывал.

Предполагая, что вы дали текстовому полю тегу в методе cellForRowAtIndexPath, вы можете сделать что-то вроде этого:

- (void)viewDidAppear:(BOOL)animated {
[super viewDidAppear:animated];

NSIndexPath *indexPath = [NSIndexPath indexPathForRow:0 inSection:0];
UITableViewCell *cell = [self.tableView cellForRowAtIndexPath:indexPath];

myTextField = (UITextField *)[cell viewWithTag:kMyTextFieldTag];
[myTextField becomeFirstResponder];
}

Ответ 3

Вызов его в - (void) viewDidLoad будет работать.

-(void)viewDidLoad{
   [super viewDidLoad];
   // Do any additional setup after loading the view.
   [self.myTextField becomeFirstResponder] 

   //... any other code you need 
}

Ответ 4

Я не получал курсор, чтобы отображаться, когда UITextField был сделан первым ответчиком внутри cellForRowAtIndexPath. Текстовое поле будет работать только отлично и денди, но оно не показывало мигающий курсор внутри поля. Когда вы нажмете и удерживаете, увеличение масштаба также не отобразит курсор.

Я обошел эту нечетную проблему, установив мой becomeFirstResponder внутри метода didSelectRowAtIndex.

Ответ 5

Является ли ваше свойство UITableView editing равным YES?