Archive for maio, 2010

Apostila iPhone - Manipulando um Picker View

sábado, maio 22nd, 2010

Como já foi falado, precisamos de um elemento NSArray para popular um Picker view, para isso precisamos inicialmente declara-lo. No MainViewController.h, digite o seguinte código:

NSArray *elementos;

NSArray *dataElementos;

@property (nonatomic, retain) NSArray *elementos;

@property (nonatomic, retain) NSArray *dataElementos;

figura-471

No arquivo MainViewController.m, digite o seguinte código:

@synthesize elementos;

@synthesize dataElementos;

figura-48

Agora que já criamos nosso array, vamos popula-lo. Precisamos fazer isso no momento que a aplicação estiver sendo carregada. No método viewDidLoad digite o seguinte código:

elementos = [[NSArray alloc] initWithObjects:@”Olá Usuário”,@”Olá Mindbike”,@”Olá iPhone”, nil];

self.dataElementos = elementos;

[elementos release];

E agora vamos implementar os métodos já mencionados:

- (NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView {

return 1;

}

- (NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component {

return [dataElementos count];

}


- (NSString *)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component {

return [dataElementos objectAtIndex:row];

}

Execute a aplicação.

(by Ademar Varela)

Apostila iPhone - Picker View

domingo, maio 16th, 2010

Agora vamos aprender a implementação de um componente muito interessante e que basicamente só existe no iPhone, o Picker View. Este componente substitui o componente Combo Box disponível nas demais plataformas mobile. A idéia básica deste componente é apresentar uma lista de opções possíveis para o usuário.
Para implementar este componente vamos passar superficialmente pela instrução chamada NSArray. Isto porque esta implementação necessita usar esta instrução, mais adiante falaremos mais profundamente desta instrução, por enquanto bastará sabermos que NSArray permite criar uma array (matriz) de elementos, alfanuméricos ou numéricos.

Criando uma matriz

Sintaxe:

NSArray *elementos = [[NSArray alloc] initWithObjects:@”elemento1”,nil];

Basicamente, estamos criando uma matriz chamada elementos que contém um elemento chamado “elemento 1”. A instrução nil, determina o final da lista de elementos.

Implementando um Picker View

Antes de iniciarmos a implementação, precisamos entender que um Picker View é um componente que precisa ser carregado antes de ser exibido, ou seja, é normal carregarmos a matriz de elementos no momento que a aplicação é inicializada. Para fazermos esta implementação será necessário implementar 3 métodos:

(NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView
(NSInteger)pickerView:(UIPickerView*)pickerViewnumberOfRowsInComponent:(NSInteger)component
(NSString *)pickerView:(UIPickerView*)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component

O primeiro método retorna a quantidade de colunas que o Picker View vai ter, o segundo a quantidade de elementos e o terceiro retorna os elementos propriamente dito.

Inserindo um Picker View no IB

Vamos abrir o projeto iPhoneHello e abrir o IB pelo arquivo MainView.xib

Na janela Library selecione Data Views e arraste o componente UIPickerView para a view MainView.

figura-45

Depois de arrastar o componente para a view, nós precisamos delegar o controle do mesmo para o controller. Para isso de um click com o botão control pressionado, quando aparecer a janela pop-up selecione a opção Delegate e arraste até o File’s Owner.
Faça o mesmo procedimento para a opção Data Source.

figura-461

Agora você pode fechar o IB e voltar para o XCode.

Declarando componente no XCode

Claro que depois de inserirmos o componente no IB, nós precisamos declara-lo no XCode. O princípio é o mesmo:

IBOutlet UIPickerView *dataPicker;

@property (nonatomic, retain) UIPickerView *dataPicker;

@synthesize dataPicker;

(by Ademar Varela)

Apostila iPhone - Tratando Teclado

domingo, maio 2nd, 2010

Você já deve ter percebido que quando usamos o componente UITextField, o teclado virtual aparece e não conseguimos recolher, mesmo pressionando o botão “return”. Isto acontece porque precisamos tratar o comportamento do teclado

Para isto vamos implementar o seguinte método:

    • (BOOL)textFieldShouldReturn:(UITextField *)theTextField {

if (theTextField == variável) {

[variável resignFirstResponder];

}

return YES;

}

Este método irá tratar todos os eventos de teclado, no parâmetro theTextField é recebido o nome do componente que está evocando o tratamento. Perceba que você pode tratar o conteúdo de uma variável no momento que recebe o retorno do teclado, como por exemplo verificar se está o campo está vazio ou não.

Text Input Traits

Existem algumas modificações que podem ser feitas no comportamento do componente UITextField, tais como:

      • Capitalize - Aqui você pode dizer quais os formatos do texto que será digitado, por exemplo, se vai deixar só a primeira letra maiúscula, ou a palavra, ou a sentença, ou mesmo sem nenhuma maiúscula.
      • Correction - Permitie usar o dicionário padrão e ajudar na correção de palavras.
      • Keyboard - Aqui você configura o tipo de teclado que vai utilizar
      • Appearance - Forma de exibição do teclado
      • Return Key - Define qual será a tecla de retorno do teclado.

Exercício

  1. Modifique o projeto iPhoneHello. Insira o componente UITextField. Quando o usuário inserir o texto, a aplicação deverá verificar se o usuário digitou algo. Se não tiver nada no camo de texto, a aplicação manterá o teclado virtual aberto, caso contrário deverá exibir o que o usuário digitou no componente label. Modifique todos os tratamentos do teclado e teste um por um.
  2. Crie uma aplicação chamada iAchou. Esta aplicação deverá gerar um número aleatório  entre 1 e 100 e o usuário deverá advinhar que número é este. Será necessário pesquisar qual a função que gera números aleatórios, no caso é a random().

(by Ademar Varela)