iOS - Champ de texte

Utilisation du champ de texte

Un champ de texte est un élément d'interface utilisateur qui permet à l'application d'obtenir une entrée utilisateur.

Un champ UIText est illustré ci-dessous.

Propriétés importantes du champ de texte

  • Texte d'espace réservé qui s'affiche lorsqu'il n'y a pas d'entrée utilisateur
  • Texte normal
  • Type de correction automatique
  • Type de clavier
  • Type de clé de retour
  • Effacer le mode bouton
  • Alignment
  • Delegate

Mise à jour des propriétés dans xib

Vous pouvez modifier les propriétés du champ de texte dans xib dans l'inspecteur d'attributs dans la zone des utilitaires (côté droit de la fenêtre).

Délégués de champ de texte

Nous pouvons définir le délégué dans le générateur d'interface en cliquant avec le bouton droit sur le UIElement et en le connectant au propriétaire du fichier comme indiqué ci-dessous.

Étapes d'utilisation des délégués

Step 1 - Définissez le délégué comme indiqué dans la figure ci-dessus.

Step 2 - Ajoutez un délégué auquel votre classe répond.

Step 3 - Implémentez les délégués textField, les délégués de champ de texte importants sont les suivants -

- (void)textFieldDidBeginEditing:(UITextField *)textField 
- (void)textFieldDidEndEditing:(UITextField *)textField

Step 4 - Comme son nom l'indique, les deux délégués ci-dessus sont appelés une fois que nous avons commencé à éditer le champ de texte et à terminer l'édition respectivement.

Step 5 - Pour les autres délégués, veuillez consulter la référence du protocole UITextDelegate.

Exemple de code et étapes

Step 1 - Nous utiliserons l'exemple d'application créé pour les éléments de l'interface utilisateur.

Step 2 - Notre classe ViewController adoptera UITextFieldDelegate et notre ViewController.h le fichier est mis à jour comme suit -

#import <UIKit/UIKit.h>

// You can notice the adddition of UITextFieldDelegate below
@interface ViewController : UIViewController<UITextFieldDelegate>

@end

Step 3 - Ensuite, on ajoute une méthode addTextField dans notre fichier ViewController.m.

Step 4 - Ensuite, nous appelons cette méthode dans notre méthode viewDidLoad.

Step 5 - Mettre à jour viewDidLoad dans ViewController.m comme suit -

#import "ViewController.h"
@interface ViewController ()

@end

@implementation ViewController

- (void)viewDidLoad {
   [super viewDidLoad];
   //The custom method to create our textfield is called
   
   [self addTextField];
   // Do any additional setup after loading the view, typically from a nib.
}

- (void)didReceiveMemoryWarning {
   [super didReceiveMemoryWarning];
   // Dispose of any resources that can be recreated.
}

-(void)addTextField {
   // This allocates a label 
   UILabel *prefixLabel = [[UILabel alloc]initWithFrame:CGRectZero];
   
   //This sets the label text
   prefixLabel.text [email protected]"## ";
   
   // This sets the font for the label
   [prefixLabel setFont:[UIFont boldSystemFontOfSize:14]];
   
   // This fits the frame to size of the text
   [prefixLabel sizeToFit];
	
   // This allocates the textfield and sets its frame
   UITextField *textField = [[UITextField  alloc] initWithFrame:
   CGRectMake(20, 50, 280, 30)];
   
   // This sets the border style of the text field 
   textField.borderStyle = UITextBorderStyleRoundedRect;
   textField.contentVerticalAlignment = UIControlContentVerticalAlignmentCenter;
   [textField setFont:[UIFont boldSystemFontOfSize:12]];
   
   //Placeholder text is displayed when no text is typed
   textField.placeholder = @"Simple Text field";
   
   //Prefix label is set as left view and the text starts after that
   textField.leftView = prefixLabel;
  
   //It set when the left prefixLabel to be displayed
   textField.leftViewMode = UITextFieldViewModeAlways;
  
   // Adds the textField to the view.
   [self.view addSubview:textField];
  
   // sets the delegate to the current class
   textField.delegate = self;
}

// pragma mark is used for easy access of code in Xcode
#pragma mark - TextField Delegates

// This method is called once we click inside the textField
-(void)textFieldDidBeginEditing:(UITextField *)textField {
   NSLog(@"Text field did begin editing");
}

// This method is called once we complete editing
-(void)textFieldDidEndEditing:(UITextField *)textField {
   NSLog(@"Text field ended editing");
}

// This method enables or disables the processing of return key
-(BOOL) textFieldShouldReturn:(UITextField *)textField {
   [textField resignFirstResponder];
   return YES;
}

- (void)viewDidUnload {
   label = nil;
   [super viewDidUnload];
}
@end

Step 6 - Lorsque nous exécutons l'application, nous obtenons la sortie suivante.

Step 7- Les méthodes déléguées sont appelées en fonction de l'action de l'utilisateur. Consultez la sortie de la console pour savoir quand les délégués sont appelés.