fields ios uitableview cocoa-touch uitextfield first-responder

fields - text field ios 11



Cómo decirle a UITextField que se convierta en el primero en responder mientras está integrado en una UITableViewCell (5)

Tengo un UITextField que es una subvista de una UITableViewCell .

Cuando mi vista se cargue, quiero que el campo de texto se convierta en el primero en responder. Tengo un puntero al campo de texto en la celda de la tabla, así que para hacer esto estoy intentando:

[myTextField becomeFirstResponder];

Esto devuelve NO todo el tiempo, independientemente de cuándo se llame, lo que según los documentos significa que el campo de texto se negó a ser el primero en responder ... ¿Qué estoy haciendo mal?

Editar:

El campo de textfield responde apropiadamente al ser tocado. Luego aparece el teclado. Es solo cuando se le dice que se becomefirstresponder en el primer becomefirstresponder programáticamente que el problema ocurre.


¿Tu propiedad de editing UITableView está establecida en YES ?


Estaba teniendo el mismo problema con un campo de texto que había agregado como una subvista a una celda de vista de tabla agrupada, pero descubrí una solución después de hurgar un poco.

Suponiendo que haya asignado una etiqueta al campo de texto en su método cellForRowAtIndexPath, puede hacer algo como esto:

- (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]; }


Llamarlo en el - (void) viewDidLoad funcionaría.

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


No estaba logrando que el cursor apareciera cuando el UITextField se convirtió en el primer respondedor dentro de cellForRowAtIndexPath . El campo de texto funcionaría bien y muy bien, pero no mostraba el cursor parpadeante dentro del campo. Cuando presionas y mantienes presionada, la ampliación del zoom tampoco mostraría un cursor.

becomeFirstResponder este extraño problema configurando mi becomeFirstResponder dentro del método didSelectRowAtIndex .


Resultó que el campo de texto era nulo cuando estaba tratando de enviarlo a la primera respuesta. El envío de becomeFirstResponder más adelante en el ciclo de vida funcionó.