UIPickerView as inputView of UITextField UIPickerView as inputView of UITextField ios ios

UIPickerView as inputView of UITextField


Try this, it works fine, put it in viewdidload.

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

do not [self.view addSubview: yourpicker]; this


Use like this,

 // PickerUIPickerView *picker = [[UIPickerView alloc]initWithFrame:CGRectMake(0, 0, self.view.frame.size.width,150)];picker.dataSource = self;picker.delegate = self;// Tool barUIToolbar *pickerToolbar = [[UIToolbar alloc] initWithFrame:CGRectMake(0, 0, self.view.frame.size.width,35)];pickerToolbar.barStyle = UIBarStyleDefault;// Bar buttonUIBarButtonItem *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;

Below code for done button actions,

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


Using Swift:

let pickerView = UIPickerView()pickerView.dataSource = selfpickerView.delegate = selftextField.inputView = pickerView;

Don't forget to implement the UIPickerViewDataSource and UIPickerViewDelegate.