Skip to content

Delegates, uma introdução rápida ao conceito.

Delegates, uma introdução rápida ao conceito.

Bom pessoal , vamos a mais um tutorial de objective C, hoje vamos trabalhar com um conceito extremamente importante de aplicativos de modo geral, o delegate. Os delegates tem a função principal de conectar o seu aplicativo com o dispositivo em si.

Caso você nunca tenha visto nada sobre o assunto talvez também seja interessante dar uma olhada na documentação a apple sobre o tema, acesse o link aqui.

Bom, vamos continuar vou demostrar alguns códigos onde o delegate é interessante de se usar.

Primeiramente vamos criar um novo projeto e colocar apenas um campo de textField e um label.

Em nosso arquivo .h vamos ligar nossos componentes e na linha onde temos nossa interface, dizemos a nosso projeto que usaremos o delegate.

#import <UIKit/UIKit.h>

@interface ViewController : UIViewController <UITextFieldDelegate>

@property (weak, nonatomic) IBOutlet UITextField *campoTexto;

@property (weak, nonatomic) IBOutlet UILabel *labelResultado;

@end

Lembrando que os nomes das variáveis fica a seu critério. Basicamente até agora não fizemos nada muito diferente do que faríamos em um projeto normal, tirando pelo nosso <UITextFieldDelegate>, e agora vamos trabalhar com ela.

Em nosso arquivo .m vamos dizer quais componentes usaram seus respectivos delegates, e claro que um campo não pode usar um delegate de outro objeto ou seja, se em nosso em nosso arquivo .h declaramos um UITextFieldDelegate só podemos dar o delegate em um textField.

Para ligar um objeto ao delegate precisamos de um linha de código:

self.campoTexto.delegate = self;

Pronto, com esse código complexo podemos agora acessar diversas propriedades do nosso campo de texto.

Vamos mostrar um exemplo simples quando nosso usuário acessa o campo texto, o teclado sobe na tela, porem não temos um botão na tela para fazer a ação de mostrar os dados que ele digitou, vamos usar o botão return do próprio teclado.

Para isso precisamos do método:

-(BOOL)textFieldShouldReturn:(UITextField *)textField

(Como ele é um método do tipo bool, precisamos do retorno)

Implementado esse método só precisamos atribuir o valor de nosso label a nosso campo de texto:

-(BOOL)textFieldShouldReturn:(UITextField *)textField{

// atribuição dos valores

self.labelResultado.text = self.campoTexto.text;

//limpando o valor do campo de texto

self.campoTexto.text = @””;

return true;

}

Esse método foi apenas um pequeno exemplo, e só de nosso text Field, muitos outros componentes apresentam delegates, WebView por exemplo tem um método com o qual podemos saber se a página em questão já foi carregada ou se ainda está abrindo.

Infelizmente não podemos fazer um post para abordar todos os delegates que a apple tem, porém a documentação é bem interessante, acesse a documentação da apple aqui.

No comment yet, add your voice below!


Add a Comment

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *