2009-08-11 6 views
0

Dans la vue d'ajout/édition de l'application Contacts, si vous appuyez sur la touche "Retour" dans un champ, vous parcourez chacun des UITextField. Ces champs semblent être dans un UITableViewCell. Quel est un bon moyen de le faire?Naviguer entre UITextFields dans UITableViewCell

Lorsque j'ai une série de UITextFields non à l'intérieur d'une table, je peux appeler [self.view viewWithTag:tag] pour obtenir une liste des vues et l'utilisation qui permet de les parcourir. Mais dans une table, je n'ai qu'une vue et je ne sais pas trop comment la convertir.

-(BOOL)textFieldShouldReturn:(UITextField *)textField { 
    // Find the next entry field 
    for (UIView *view in [self entryFields]) { 
     if (view.tag == (textField.tag + 1)) { 
      [view becomeFirstResponder]; 
      break; 
     } 
    } 

    return NO; 
} 

/* 
Returns an array of all data entry fields in the view. 
Fields are ordered by tag, and only fields with tag > 0 are included. 
Returned fields are guaranteed to be a subclass of UIResponder. 

From: http://iphoneincubator.com/blog/tag/uitextfield 
*/ 
- (NSArray *)entryFields { 
    if (!entryFields) { 
     self.entryFields = [[NSMutableArray alloc] init]; 
     NSInteger tag = 1; 
     UIView *aView; 
     while (aView = [self.view viewWithTag:tag]) { 
      if (aView && [[aView class] isSubclassOfClass:[UIResponder class]]) { 
       [entryFields addObject:aView]; 
      } 
      tag++; 
     } 
    } 
    return entryFields; 
} 

Répondre

0

Je viens de le découvrir en cherchant quelque chose moi-même - désolé pour le retard.

Si vous n'avez pas résolu le problème, vous pouvez créer un tableau d'objets uitextfield dans le même ordre que celui affiché à l'écran. Lorsque vous créez la table, définissez la propriété .tag du champ de texte. Dans la méthode de délégation de champ de texte - lisez la balise, incrémentez de 1 (pour passer au champ suivant), et lancez l'appel de becomefirsresponder.

Vous pouvez également consulter la méthode déléguée textFieldDidEndEditing.

Questions connexes