web-dev-qa-db-fra.com

UIPickerView comme entréeView de UITextField

J'ai lu beaucoup de choses sur la façon dont je peux utiliser un UIPickerView comme inputView de mon UITextField. Le truc c'est que je peux appeler le UIPickerView quand je tape sur le UITextField. Cependant, mon application se charge toujours avec le UIPickerView affiché. J'ai déjà essayé de changer le myownpickerview.hidden = YES; dans viewDidLoad, mais cela pose problème lorsque je clique sur UITextField. Il n'apparaîtra pas et si je clique plusieurs fois, le débogueur montre qu'il y aurait une erreur.

Est-ce que quelqu'un peut-il me montrer la bonne direction? Je ne veux que le UIPickerView affiché après avoir tapé sur le UITextField

Je travaille toujours sur ma toute première application iOS. Soyez patient. Merci =)

28
SilverHood

Essayez ceci, cela fonctionne très bien, mettez-le dans viewdidload.

yourpicker = [[UIPickerView alloc] initWithFrame:CGRectMake(0, 50, 100, 150)];
    [yourpicker setDataSource: self];
    [yourpicker setDelegate: self];
    yourpicker.showsSelectionIndicator = YES;
    self.yourtextfield.inputView = yourpicker;

ne pas faire[self.view addSubview: yourpicker]; cette

47
Aklesh Rathaur

Utilisez comme ça,

 // Picker
UIPickerView *picker = [[UIPickerView alloc]initWithFrame:CGRectMake(0, 0, self.view.frame.size.width,150)];
picker.dataSource = self;
picker.delegate = self;

// Tool bar
UIToolbar *pickerToolbar = [[UIToolbar alloc] initWithFrame:CGRectMake(0, 0, self.view.frame.size.width,35)];
pickerToolbar.barStyle = UIBarStyleDefault;

// Bar button
UIBarButtonItem *doneButton = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemDone target:self action:@selector(pickerDoneButtonTapped:)];
UIBarButtonItem *flexSpace = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace target:self action:nil];
[pickerToolbar setItems:@[flexSpace,doneButton]];

self.selectedLockerTextFiled.inputAccessoryView = pickerToolbar;
self.selectedLockerTextFiled.inputView = picker;

Ci-dessous le code pour les actions de bouton terminé,

-(void)pickerDoneButtonTapped:(id)picker{
    [self.view endEditing:YES];}
0