6

I've created a custom UIPickerView with the following code

UIPickerView *picker =[[UIPickerView alloc] initWithFrame:CGRectMake(139,50,161,30)];
    picker.delegate=self;
    picker.showsSelectionIndicator=YES;
    picker.hidden=NO;

    [self.view addSubview:picker];

Now I want to hide the pickerView when the user make its choice of a row simply with

picker.hidden=YES;

Now: 1) How can I recognize the choice of the user and then hide the unuseful pickerview? 2) Can I show the choice in a TextField? with @"choice"?

TheInterestedOne
  • 748
  • 3
  • 12
  • 33

7 Answers7

5

I'm using a UIPickerView as the inputView for a TextField (thus replacing the onscreen keyboard). I use the following delegate to dismiss the view.

#pragma mark - UIPickerViewDelegate
- (void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component {
    // Code logic
    [[self view] endEditing:YES];
}
Pétur Ingi Egilsson
  • 4,368
  • 5
  • 44
  • 72
2

Add this line where you have created picker

picker.delegate = self;

your callback

- (void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component {
    picker.hidden=YES;
}
Inder Kumar Rathore
  • 39,458
  • 17
  • 135
  • 184
2

use the delegate method of UIPickerView like bellow..

   - (void)pickerView:(UIPickerView *)thePickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component {

        yourTextField.text = [yourArray objectAtIndex:row];
        thePickerView.hidden = YES;

    }

Also you can take one UIButton and hide this with action event of UIButton.

Paras Joshi
  • 20,427
  • 11
  • 57
  • 70
0

You can use UINavigationBar and Barbutton with cancel and Done text upon it.

You can refer the following link

Objective C implementing a UIPickerView with a "Done" button

Community
  • 1
  • 1
Shashank Kulshrestha
  • 1,556
  • 17
  • 31
0

UIView *addMealView; // here i am showing my picker

   - (void)pickerView:(UIPickerView *)pickerView didSelectRow: (NSInteger)row inComponent:(NSInteger)component 
{   
[addMealView endEditing:YES];   
}
Ankit Goyal
  • 3,019
  • 1
  • 21
  • 26
0

I'm using a UIPickerView as the inputView for a TextField (for replacing the standard keyboard). I use the ResignFirstResponder (TextField method) to dismiss the view.

5573352
  • 1,115
  • 1
  • 7
  • 8
0

In XCode 12.2 you could use:

thePickerView.isHidden = true