2010-06-16 13 views
0

Voici donc ce que je suis en train de faire. J'ai un champ de texte date de naissance, alors que l'utilisateur met texte que je veux le terrain pour mettre automatiquement sous la forme AAAA-MM-JJ. Fondamentalement, pendant que l'utilisateur tape, il remplace les M et D de Y mais laisse le trait d'union. Je ne suis pas sûr de savoir comment s'y prendre, je peux avoir besoin d'un masque ou quelque chose.Format Champ de texte Bien que l'utilisateur saisit les données

Je sais que c'est là une partie de la mise en forme peut être fait

- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string{ 

Toute aide serait d'un grand secours

+0

Pourquoi ne pas simplement utiliser le sélecteur de date ?? –

+0

Je n'ai pas aimé la façon dont il est mis en place, plus je vais être ajouter des choses comme le numéro de téléphone et comme si c'est bon de savoir – Matt

Répondre

0

OK Voici donc ce que j'ai maintenant

- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string 
{ 
    //Format Date of Birth YYYY-MM-DD 
    if(textField == txtDOB) 
    { 
     if ((txtDOB.text.length == 4)||(txtDOB.text.length == 7)) 
      //Handle backspace being pressed 
      if (![string isEqualToString:@""]) 
      txtDOB.text = [txtDOB.text stringByAppendingString:@"-"]; 
     return !([textField.text length]>9 && [string length] > range.length); 
    } 
    else 
     return YES; 

} 

Le seul problème est que lorsque je tente de sauvegarder l'espace, il ne fonctionne pas ma conjecture est parce qu'il tente d'ajouter le tableau de bord à chaque fois que je frappe la touche de retour arrière. Quelqu'un sait-il un travail autour?

+0

Voir ma réponse. Vous réinventez la roue et vous vous faites mordre par le fait. –