Como selecionar um UITextField?
-
05-07-2019 - |
Pergunta
Eu quero editar o nome do usuário dentro de um UITableView. Eu adicionei um UITextField ao UITableViewCell e isso parece funcionar muito bem. Mas quando o usuário toca o celular (mesmo fora do campo de texto), ele espera que a edição.
Como faço para programaticamente selecionar o campo de texto?
O código seria algo parecido com:
- (void)tableView:(UITableView *)tableView
didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
userName.selected = TRUE;
}
Solução
- (void)tableView:(UITableView *)tableView
didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
UITableViewCell *cellSelected = [tableView cellForRowAtIndexPath: indexPath];
UITextField *textField = [[cellSelected.contentView subviews] objectAtIndex: 0];
[textField becomeFirstResponder];
[tableView deselectRowAtIndexPath: indexPath animated: NO];
}
Isso pressupõe que você não tem mais rápido maneira de saber qual objeto UITextField é em qual célula, e que você sabe com certeza que o UITextField será o primeiro subexibição.
Você também pode querer colocar em um cheque de [textField isFirstResponder] - nenhum ponto em tornando-o o firstResponder se ele já é. Isto pode não ser que necessário.
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow