How to use Pickerview with Uitextfield for input data in IOS

At work recently I faced with the task of creating an interface were a two uipickerview would control the value input for different field .I decided that the interface would be better if for those fields that used a uipickerview it would appear when the user clicked into the textfield.

//HEADER FILE OR .h FILE

Screen Shot 2014-11-19 at 6.12.11 pm

#import <UIKit/UIKit.h>

@interface ViewController : UIViewController
<UITextFieldDelegate,UIPickerViewDataSource,UIPickerViewDelegate>
{

UITextField *myTextField;
UIPickerView *myPickerView;
NSArray *pickerArray;
}
@end

//IMPLEMENTATION FILE OR.m FILE
===========

Screen Shot 2014-11-19 at 6.11.39 pm

 

 

-(void)viewDidLoad
{
[super viewDidLoad];
[self addPickerView];
}
-(void)addPickerView{
pickerArray = [[NSArray alloc]initWithObjects:@“Physics”,
@“Chemistry”,@“Mathematics”,@“Biology”,@“History”, nil];
myTextField = [[UITextField alloc]initWithFrame:
CGRectMake(10, 100, 300, 30)];
myTextField.borderStyle = UITextBorderStyleRoundedRect;
myTextField.textAlignment = UITextAlignmentCenter;
myTextField.delegate = self;
[self.view addSubview:myTextField];
[myTextField setPlaceholder:@“Select a Subject”];
myPickerView = [[UIPickerView alloc]init];
myPickerView.dataSource = self;
myPickerView.delegate = self;
myPickerView.showsSelectionIndicator = YES;
UIBarButtonItem *doneButton = [[UIBarButtonItem alloc] 
initWithTitle:@"Done" style:UIBarButtonItemStyleDone 
target:self action:@selector(done:)];
UIToolbar *toolBar = [[UIToolbar alloc]initWithFrame:
CGRectMake(0, self.view.frame.size.height-
myDatePicker.frame.size.height-50, 320, 50)];
[toolBar setBarStyle:UIBarStyleBlackOpaque];
NSArray *toolbarItems = [NSArray arrayWithObjects: 
doneButton, nil];
[toolBar setItems:toolbarItems];
myTextField.inputView = myPickerView;
myTextField.inputAccessoryView = toolBar;

}

Screen Shot 2014-11-19 at 6.11.56 pm

#pragma mark - Text field delegates

-(void)textFieldDidBeginEditing:(UITextField *)textField{
if ([textField.text isEqualToString:@""]) {
[self dateChanged:nil];
}
}
#pragma mark - Picker View Data source
-(NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView{
return 1;
}
-(NSInteger)pickerView:(UIPickerView *)pickerView 
numberOfRowsInComponent:(NSInteger)component{
return [pickerArray count];
}

#pragma mark- Picker View Delegate

-(void)pickerView:(UIPickerView *)pickerView didSelectRow:
(NSInteger)row inComponent:(NSInteger)component{
[myTextField setText:[pickerArray objectAtIndex:row]];
}
- (NSString *)pickerView:(UIPickerView *)pickerView titleForRow:
(NSInteger)row forComponent:(NSInteger)component{
return [pickerArray objectAtIndex:row];
}

FINAL OUTPUT
iOS Simulator Screen Shot 19-Nov-2014 6.22.17 pm


Discover more from mycodetips

Subscribe to get the latest posts sent to your email.

Discover more from mycodetips

Subscribe now to keep reading and get access to the full archive.

Continue reading

Scroll to Top