UIBarButton added to PickerView
AppDelegate.h
@class ViewController;
@interface AppDelegate : UIResponder <UIApplicationDelegate>
@property (strong, nonatomic) UIWindow *window;
@property (strong, nonatomic) ViewController *viewController;
@end
AppDelegate.m
#import "AppDelegate.h"
#import "ViewController.h"
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
// Override point for customization after application launch.
self.viewController = [[ViewController alloc] initWithNibName:@"ViewController" bundle:nil];
self.window.rootViewController = self.viewController;
[self.window makeKeyAndVisible];
return YES;
}
ViewController.h
#import <UIKit/UIKit.h>
@interface ViewController : UIViewController<UIPickerViewDataSource, UIPickerViewDelegate, UITextFieldDelegate>
{ UIPickerView *cityPicker;
UIToolbar* mypickerToolbar;
IBOutlet UITextField *txtText,*t2;
NSString *names;
NSArray *category,*name;
NSMutableDictionary *dict;
NSArray *obj;
}@end
ViewController.m
#import "ViewController.h"
@interface ViewController ()@end
@implementation ViewController
-(BOOL)textFieldShouldBeginEditing:(UITextField *)textField{
if (textField==txtText) {
cityPicker.tag=1;
[cityPicker reloadAllComponents];
t2.text=@"";
}
else if (textField ==t2)
{
cityPicker.tag=2;
[cityPicker reloadAllComponents];
}
return YES;
}
- (void)viewDidLoad
{
[super viewDidLoad];
category = [NSArray arrayWithObjects:@"books",@"Images",@"Cells", nil];
NSArray *books=[[NSArray alloc]initWithObjects:@"b1",@"b2",@"b3", nil];
NSArray *images=[[NSArray alloc]initWithObjects:@"img1",@"img2",@"img3", nil];
NSArray *cells=[[NSArray alloc]initWithObjects:@"c1",@"c2",@"c3", nil];
name=[[NSArray alloc]initWithObjects:books,images,cells, nil];
NSLog(@"Names : %@",[name objectAtIndex:0]);
dict=[[NSMutableDictionary alloc]initWithObjects:name forKeys:category];
cityPicker = [[UIPickerView alloc] initWithFrame:CGRectZero];
cityPicker.delegate = self;
cityPicker.dataSource = self;
[cityPicker setShowsSelectionIndicator:YES];
txtText.inputView = cityPicker;
t2.inputView = cityPicker;
// Create done button in UIPickerView
mypickerToolbar = [[UIToolbar alloc] initWithFrame:CGRectMake(0, 0, 320, 56)];
mypickerToolbar.barStyle = UIBarStyleBlackOpaque;
[mypickerToolbar sizeToFit];
NSMutableArray *barItems = [[NSMutableArray alloc] init];
UIBarButtonItem *flexSpace = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace target:self action:nil];
[barItems addObject:flexSpace];
UIBarButtonItem *cancleBtn = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemCancel target:self action:@selector(cancelBtnPressed)];
[barItems addObject:cancleBtn];
UIBarButtonItem *doneBtn = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemDone target:self action:@selector(pickerDoneClicked)];
[barItems addObject:doneBtn];
[mypickerToolbar setItems:barItems animated:YES];
[mypickerToolbar setHidden:NO];
[cityPicker setHidden:NO];
txtText.inputAccessoryView = mypickerToolbar;
t2.inputAccessoryView = mypickerToolbar;
NSLog(@"Keys Count: %i, Values Count: %i",[[dict allKeys]count ],[[dict allValues]count]);
}
-(void)cancelBtnPressed{
txtText.text=@"";
[txtText resignFirstResponder];
t2.text=@"";
[t2 resignFirstResponder];
}
-(void)pickerDoneClicked
{
NSLog(@"Done Clicked");
[txtText resignFirstResponder];
[t2 resignFirstResponder];
}
- (NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView
{
// if (pickerView.tag) {
//
// }
return 1;
}
- (NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component
{
if (pickerView.tag==1) {
return [[dict allKeys]count];
}
else if (pickerView.tag==2)
{
obj=[dict objectForKey:txtText.text];
return [obj count];
}
return 0;
}
- (NSString *)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component
{
if (pickerView.tag==1) {
return [[dict allKeys]objectAtIndex:row];
}
else if (pickerView.tag==2)
{
// return [[dict objectForKey:txtText.text]objectAtIndex:0];
return [obj objectAtIndex:row];
}
return NULL;
}
- (void) pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component
{
if (pickerView.tag==1) {
txtText.text = (NSString *)[[dict allKeys]objectAtIndex:row];
t2.text=@"";
}
if (pickerView.tag==2) {
t2.text = (NSString *)[obj objectAtIndex:row];
}
}
- (void)viewDidUnload
{
[super viewDidUnload];
// Release any retained subviews of the main view.
}
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
return (interfaceOrientation != UIInterfaceOrientationPortraitUpsideDown);
}
@end
tags:ui controls in ios, uikit framework reference, pickerview in iphone, pickerview in ios, uipickerview programmatically, uipickerview example, uibarbuttonitem programmatically,uibarbuttonitem example

Posted in:
0 comments:
Post a Comment