61 votes

iPhone comment obtenir UITextField du texte lors de la saisie?

J'essaie de montrer les modifications apportées à un UITextField sur un distinct UILabel. Est-il un moyen de capturer le texte de l' UITextField après chaque personnage les types d'utilisateurs? Actuellement, je suis en utilisant cette méthode, mais il ne capture pas le dernier caractère que l'utilisateur a entré.

Je sais qu' UITextView a "didChange" la méthode, mais je ne pouvais pas trouver cette méthode pour un UITextField.

//does not capture the last character

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

        [self updateTextLabelsWithText: textField.text];

    return YES;
}

Comment puis-je prendre un texte d'UITextField après chaque caractère entré?

Merci!!!!

140voto

Mrunal Points 4359
  1. Premier add-on UITextField et UILabel à la plume de fichier.
  2. Maintenant attribuer IBOutlet pour UILabel (Ici j'ai utilisé myLabel)
  3. Attribuer UITextFieldDelegate de fichier propriétaire, aussi de mettre en œuvre le même délégué .h fichier
  4. L'utilisation de ces lignes de code:

    - (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
    {
        NSString *newString = [textField.text stringByReplacingCharactersInRange:range withString:string];
        [self updateTextLabelsWithText: newString];
    
        return YES;
    }
    
    -(void)updateTextLabelsWithText:(NSString *)string
    {
    
         [myLabel setText:string];
    }
    

73voto

Fabs Points 91

Tout simplement face à "l'Édition Changé" événement

[textField addTarget:self 
              action:@selector(editingChanged:)
    forControlEvents:UIControlEventEditingChanged];

et le sélecteur:

-(void) editingChanged:(id)sender {
   // your code
}

Vous pouvez le faire manuellement, ou avec le storyboard par CTRL-Glisser le "Montage changé" événement Envoyé à votre .h, de la création de la editingChanged méthode pour vous.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X