I am having a lot of trouble figuring out how to implement a standard popup picker. Like many apps\' registration screen when a user selects the birthday text field I\'d like a
The ActionSheetPicker-3.0 library seems to do this pretty well.
I think the "standard" way, is to set the picker as the inputView of the text field.
UIPickerView *picker = [[UIPickerView alloc] init];
self.textField.inputView = picker;
It will pop up front the bottom, just like the keyboard does when you touch in the text field.
Here's a simple implementation of how to use a picker as an input view:
@interface ViewController ()
@property (weak, nonatomic) IBOutlet UITextField *tf;
@property (strong,nonatomic) NSArray *theData;
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
UIPickerView *picker = [[UIPickerView alloc] init];
picker.dataSource = self;
picker.delegate = self;
self.tf.inputView = picker;
self.theData = @[@"one",@"two",@"three",@"four"];
}
-(NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component {
return self.theData.count;
}
-(NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView {
return 1;
}
-(NSString *)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component {
return self.theData[row];
}
-(void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component {
self.tf.text = self.theData[row];
[self.tf resignFirstResponder];
}