iOS - Campo de Texto

Uso do campo de texto

Um campo de texto é um elemento de IU que permite ao aplicativo obter a entrada do usuário.

Um UITextfield é mostrado abaixo.

Propriedades importantes do campo de texto

  • Texto de espaço reservado que é mostrado quando não há entrada do usuário
  • Texto normal
  • Tipo de correção automática
  • Tipo de teclado
  • Tipo de chave de retorno
  • Limpar modo de botão
  • Alignment
  • Delegate

Atualizando propriedades no xib

Você pode alterar as propriedades do campo de texto no xib no inspetor de atributos na área de utilitários (lado direito da janela).

Delegados de campo de texto

Podemos definir delegado no construtor de interface clicando com o botão direito do mouse no UIElement e conectá-lo ao proprietário do arquivo, conforme mostrado abaixo.

Etapas no uso de delegados

Step 1 - Defina o delegado como mostrado na figura acima.

Step 2 - Adicionar delegado ao qual sua classe responde.

Step 3 - Implemente os delegados textField, os delegados de campo de texto importantes são os seguintes -

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

Step 4 - Como o nome sugere, os dois delegados acima são chamados assim que começarmos a editar o campo de texto e terminar a edição, respectivamente.

Step 5 - Para outros delegados, consulte a referência do protocolo UITextDelegate.

Código de amostra e etapas

Step 1 - Usaremos o aplicativo de amostra criado para elementos de IU.

Step 2 - Nossa classe ViewController adotará UITextFieldDelegate e nosso ViewController.h arquivo é atualizado da seguinte forma -

#import <UIKit/UIKit.h>

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

@end

Step 3 - Então nós adicionamos um método addTextField ao nosso arquivo ViewController.m.

Step 4 - Então, chamamos esse método em nosso método viewDidLoad.

Step 5 - Atualização viewDidLoad dentro ViewController.m como segue -

#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 - Quando executarmos o aplicativo, obteremos a seguinte saída.

Step 7- Os métodos delegados são chamados com base na ação do usuário. Veja a saída do console para saber quando os delegados são chamados.