clavier cache mon picker view
hedi
Membre
bonjour a tous
après un long travail j'ai enfin réussi a faire afficher un pickerView a la place d'un clavier sauf que LE CLAVIER S'AFFICHE TOUJOURS avec mon pickerView et il le cache
est ce que vous avez une idee d'ou vient mon erreur
Je vous donne le code
De plus j'ai besoin de mettre un bouton ok pour que le pickerView disparaissent est ce que vous avez une idee merci pour les effort
Mon .h
@interface RechercherViewController : UIViewController <UITextFieldDelegate, UIPickerViewDelegate, UIPickerViewDataSource> {
IBOutlet UITextField *nomTextField;
IBOutlet UITextField *prenomTextField;
IBOutlet UITextField *agence;
IBOutlet UIPickerView *pickerView;
NSMutableArray *arrayColors;
}
@property (nonatomic, retain) UITextField *nomTextField;
@property (nonatomic, retain) UITextField *prenomTextField;
@property (nonatomic, retain) UITextField *agence;
- (IBAction) Recherche :(id)sender;
@end
Mon .m
#import "RechercherViewController.h"
@implementation RechercherViewController
@synthesize nomTextField;
@synthesize prenomTextField;
@synthesize agence;
- (void)viewDidLoad {
[super viewDidLoad];
// Set the title of this view
self.title = @Recherche;
nomTextField.delegate = self;
prenomTextField.delegate = self;
agence.delegate = self;
arrayColors = [[NSArray arrayWithObjects: @Sélectionnez une agence, @Agence 1, @Agence 2, @Agence 3, @Agence 4, nil] retain];
pickerView.transform = CGAffineTransformMakeScale(0.5, 0.5);
[pickerView selectRow:1 inComponent:0 animated:NO];
agence.text= [arrayColors objectAtIndex:[pickerView selectedRowInComponent:0]];
self.navigationItem.rightBarButtonItem = [[[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemSave target:self action:@selector(save] autorelease];
}
- (BOOL)textFieldShouldBeginEditing:(UITextField *)textField
{
if(textField == agence)
{
pickerView = [[UIPickerView alloc] initWithFrame:CGRectMake(0.0, 264.0, 320.0, 216.0)];
pickerView.delegate = self;
pickerView.showsSelectionIndicator = YES;
[pickerView selectRow:0 inComponent:0 animated:NO];
[self.navigationController.view addSubview:pickerView];
}
[self.navigationController.view bringSubviewToFront:pickerView];
}
- (BOOL)textFieldShouldReturn:(UITextField *)textField {
if(textField == nomTextField || textField == prenomTextField || textField == agence) {
[nomTextField resignFirstResponder];
[prenomTextField resignFirstResponder];
[agence resignFirstResponder];
}
return YES;
}
//Retourne le nombre de colonnes dans le picker
- (NSInteger)numberOfComponentsInPickerView:(UIPickerView *)thePickerView {
return 1;
}
- (NSInteger)pickerView:(UIPickerView *)thePickerView numberOfRowsInComponent:(NSInteger)component {
return [arrayColors count];
}
- (NSString *)pickerView:(UIPickerView *)thePickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component {
return [arrayColors objectAtIndex:row];
}
- (void)pickerView:(UIPickerView *)thePickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component {
//NSLog(@Selected Color: %@. Index of selected color: %i", [arrayColors objectAtIndex:row], row);
agence.text= [arrayColors objectAtIndex:row];
}
- (IBAction) Recherche :(id)sender;{
UIAlertView *baseAlert = [[UIAlertView alloc]
initWithTitle:(@"") message:@Rentrez les bons paramètres de recherche.
delegate:self cancelButtonTitle:@OK
otherButtonTitles: nil];
baseAlert.delegate = self;
[baseAlert show];
[baseAlert release];
}
- (void)didReceiveMemoryWarning {
// Releases the view if it doesn't have a superview.
[super didReceiveMemoryWarning];
// Release any cached data, images, etc that aren't in use.
}
- (void)viewDidUnload {
}
- (void)dealloc {
[arrayColors release];
[super dealloc];
}
@end
Voila Merci beaucoup pour votre aide
après un long travail j'ai enfin réussi a faire afficher un pickerView a la place d'un clavier sauf que LE CLAVIER S'AFFICHE TOUJOURS avec mon pickerView et il le cache
est ce que vous avez une idee d'ou vient mon erreur
Je vous donne le code
De plus j'ai besoin de mettre un bouton ok pour que le pickerView disparaissent est ce que vous avez une idee merci pour les effort
Mon .h
@interface RechercherViewController : UIViewController <UITextFieldDelegate, UIPickerViewDelegate, UIPickerViewDataSource> {
IBOutlet UITextField *nomTextField;
IBOutlet UITextField *prenomTextField;
IBOutlet UITextField *agence;
IBOutlet UIPickerView *pickerView;
NSMutableArray *arrayColors;
}
@property (nonatomic, retain) UITextField *nomTextField;
@property (nonatomic, retain) UITextField *prenomTextField;
@property (nonatomic, retain) UITextField *agence;
- (IBAction) Recherche :(id)sender;
@end
Mon .m
#import "RechercherViewController.h"
@implementation RechercherViewController
@synthesize nomTextField;
@synthesize prenomTextField;
@synthesize agence;
- (void)viewDidLoad {
[super viewDidLoad];
// Set the title of this view
self.title = @Recherche;
nomTextField.delegate = self;
prenomTextField.delegate = self;
agence.delegate = self;
arrayColors = [[NSArray arrayWithObjects: @Sélectionnez une agence, @Agence 1, @Agence 2, @Agence 3, @Agence 4, nil] retain];
pickerView.transform = CGAffineTransformMakeScale(0.5, 0.5);
[pickerView selectRow:1 inComponent:0 animated:NO];
agence.text= [arrayColors objectAtIndex:[pickerView selectedRowInComponent:0]];
self.navigationItem.rightBarButtonItem = [[[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemSave target:self action:@selector(save] autorelease];
}
- (BOOL)textFieldShouldBeginEditing:(UITextField *)textField
{
if(textField == agence)
{
pickerView = [[UIPickerView alloc] initWithFrame:CGRectMake(0.0, 264.0, 320.0, 216.0)];
pickerView.delegate = self;
pickerView.showsSelectionIndicator = YES;
[pickerView selectRow:0 inComponent:0 animated:NO];
[self.navigationController.view addSubview:pickerView];
}
[self.navigationController.view bringSubviewToFront:pickerView];
}
- (BOOL)textFieldShouldReturn:(UITextField *)textField {
if(textField == nomTextField || textField == prenomTextField || textField == agence) {
[nomTextField resignFirstResponder];
[prenomTextField resignFirstResponder];
[agence resignFirstResponder];
}
return YES;
}
//Retourne le nombre de colonnes dans le picker
- (NSInteger)numberOfComponentsInPickerView:(UIPickerView *)thePickerView {
return 1;
}
- (NSInteger)pickerView:(UIPickerView *)thePickerView numberOfRowsInComponent:(NSInteger)component {
return [arrayColors count];
}
- (NSString *)pickerView:(UIPickerView *)thePickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component {
return [arrayColors objectAtIndex:row];
}
- (void)pickerView:(UIPickerView *)thePickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component {
//NSLog(@Selected Color: %@. Index of selected color: %i", [arrayColors objectAtIndex:row], row);
agence.text= [arrayColors objectAtIndex:row];
}
- (IBAction) Recherche :(id)sender;{
UIAlertView *baseAlert = [[UIAlertView alloc]
initWithTitle:(@"") message:@Rentrez les bons paramètres de recherche.
delegate:self cancelButtonTitle:@OK
otherButtonTitles: nil];
baseAlert.delegate = self;
[baseAlert show];
[baseAlert release];
}
- (void)didReceiveMemoryWarning {
// Releases the view if it doesn't have a superview.
[super didReceiveMemoryWarning];
// Release any cached data, images, etc that aren't in use.
}
- (void)viewDidUnload {
}
- (void)dealloc {
[arrayColors release];
[super dealloc];
}
@end
Voila Merci beaucoup pour votre aide
Connectez-vous ou Inscrivez-vous pour répondre.
Réponses
Normal.
Une fois que tu es dedans, ça veut dire que le clavier est affiché, donc ce n'est pas ici qu'il faut afficher ton picker...mais plutôt à l'init de ton textField.
En gros: