iPhone comment get le text de UITextField tout en tapant?

UITextField de montrer les changements faits à un UITextField sur un UILabel séparé. Existe-t-il un moyen de capturer le text intégral de UITextField après chaque caractère UITextField par l'user? Actuellement, j'utilise cette méthode, mais elle ne capture pas le dernier caractère entré par l'user.

Je sais que UITextView a la méthode "didChange", mais je n'ai pas pu find cette méthode pour un UITextField .

 //does not capture the last character -(BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementSsortingng:(NSSsortingng *)ssortingng { [self updateTextLabelsWithText: textField.text]; return YES; } 

Comment puis-je retirer du text de UITextField après chaque caractère entré?

Je vous remercie!

  1. Ajoutez d'abord un UITextField et UILabel au storyboard / nib
  2. IBOutlet maintenant IBOutlet à UILabel (Ici, j'ai utilisé myLabel )
  3. Affectez UITextFieldDelegate au propriétaire du file, implémentez également le même délégué dans le file .h
  4. Utilisez ces lignes de code:

     - (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementSsortingng:(NSSsortingng *)ssortingng { NSSsortingng *newSsortingng = [textField.text ssortingngByReplacingCharactersInRange:range withSsortingng:ssortingng]; [self updateTextLabelsWithText: newSsortingng]; return YES; } -(void)updateTextLabelsWithText:(NSSsortingng *)ssortingng { [myLabel setText:ssortingng]; } 

J'espère que cela t'aides.

Il suffit de gérer l'événement "Modification de l'édition"

 [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 l'événement Envoyé "Modifier modifié" à votre file .h, en créant la méthode editingChanged pour vous.

Dans Swift 2.0+

  class CheckInViewController: UIViewController, UITextFieldDelegate { override func viewDidLoad() { super.viewDidLoad() yourTextField.delegate = self } func textField(textField: UITextField!, shouldChangeCharactersInRange range: NSRange, replacementSsortingng ssortingng: Ssortingng!) -> Bool { var updatedTextSsortingng : NSSsortingng = textField.text as NSSsortingng updatedTextSsortingng = updatedTextSsortingng.ssortingngByReplacingCharactersInRange(range, withSsortingng: ssortingng) self.methodYouWantToCallWithUpdatedSsortingng(updatedTextSsortingng) return true } } 

J'espère que cela vous aidera à devenir rapidement des pionniers

Swift avec addTarget Swift 2.0+

  titleTextField.addTarget(self, action: #selector(textFieldTyping), forControlEvents: .EditingChanged) 

Et implémenter le selector

 func textFieldTyping(textField:UITextField) { //Typing } 

Dans Swift 3.0:

Certaines de ces solutions avaient un caractère derrière, ou pour des versions antérieures de Swift et Obj-C. Voici ce que j'utilise pour Swift 3.0

Dans la class j'ai déclaré un espace réservé pour stocker le text.

 var tempName = "" 

Dans ViewDidLoad j'ai utilisé:

 nameField.addTarget(self, action: #selector(typingName), for: .editingChanged) 

Ensuite, j'ai fait une fonction appelée:

  func typingName(textField:UITextField){ if let typedText = textField.text { tempName = typedText print(tempName) } }