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

tips & tricks

Join 7,715 other subscribers

interview questions


Algorithm Android Android Studio API APP Programming Apps AS400 blogging Browser CheatSheets Config CSS DATABASE dsa error Features GUI HTML HTML5 IDE installation Interview Questions IOS iPhone javascript Mac objective-c OneDrive OS Programming quicktips SDK SEO Settings SMO SQL swift swiftUI Teams Tips & Tricks Tools UI Web Wordpress Xcode


Archives

2 responses to “How to use Pickerview with Uitextfield for input data in IOS”

  1. imran

    code is missing a part after selecting any text it showing error on done

  2. Smit Saraiya

    where myDatePicker was decelered ? which you have write in addPickerView method at line no 20.

Leave a Reply

Your email address will not be published. Required fields are marked *

Discover more from CODE t!ps

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

Continue reading