问题
Basically I would like to have the user click in the text field and it bring up a populated pickerview rather than a keyboard. This would also need a toolbar with a done button as well Im presuming. I currently have the field set as an output and action and not much more. I also have an actionsheet in code being used for when the user submits something as well if that makes any difference to possibly using an actionsheet for this as well.
I tried researching this topic but 99% of the topics were with datepickers rather than pickerviews (or very old code).
Here is an image of what it looks like for reference.
回答1:
UITextField
now has an inputView
property. Here you can assign it a display that you want including a UIPickerView. You must setup the pickerview though and must implement UITextFieldDelegate
and UIPickerViewDataSource
in your .h:
@interface ViewController : UIViewController <UIPickerViewDataSource, UIPickerViewDelegate>
Then create the picker view and assign it to the textfield.
UIPickerView *pickerView = [[UIPickerView alloc] init];
pickerView.dataSource = self;
pickerView.delegate = self;
// ... ...
self.pickerTextField.inputView = pickerView;
Because you implemented the UIPickerView interfaces you must now implement these methods:
- (NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component;
- (NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView;
- (NSString *)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component;
You should then be good to go. Check out the documentation for some other methods if you need more information.
来源:https://stackoverflow.com/questions/14597902/bringing-up-a-uipickerview-rather-than-keyboard-input-ios