2009-07-30 12 views
7

Voglio modificare il nome utente dell'utente all'interno di UITableView. Ho aggiunto un UITextField a UITableViewCell e questo sembra funzionare molto bene. Ma quando l'utente tocca la cella (anche al di fuori del campo di testo), si aspetta di modificare.Come selezionare un UITextField?

Come selezionare il campo di testo in modo programmatico?

Il codice dovrebbe essere simile:

- (void)tableView:(UITableView *)tableView 
didSelectRowAtIndexPath:(NSIndexPath *)indexPath { 
userName.selected = TRUE; 
} 

risposta

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

} 

Questo presuppone che non c'è modo più veloce per sapere quale oggetto UITextField è in quale cella, e che si sa per certo che l'UITextField sarà la prima sottoview.

Si potrebbe anche voler inserire un controllo per [textField isFirstResponder] - nessun punto nel renderlo il FirstResponder se lo è già. Questo potrebbe non essere necessario però.

Problemi correlati