敲击textfield显示UIPickerView

在XIB文件中,拖出 一个UITextField,然后拖出一个UIToolbar和一个UIDatePicker,但不要附加到View中(拖到视图外面)。适当的连接Outlets。

.h文件

#import <UIKit/UIKit.h>

 

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

NSArray *pickerArray;

}

– (IBAction)selectButton:(id)sender;

@property (strong, nonatomic) IBOutlet UIToolbar *doneToolbar;

@property (strong, nonatomic) IBOutlet UIPickerView *selectPicker;

@property (strong, nonatomic) IBOutlet UITextField *textField;

 

@end

 

.m文件关键代码

@synthesize doneToolbar;

@synthesize selectPicker;

@synthesize textField;

 

– (void)viewDidLoad

{

[super viewDidLoad];

//初始化

pickerArray = [NSArray arrayWithObjects:@”动物”,@”植物”,@”石头”,@”天空”, nil];

textField.inputView = selectPicker;

textField.inputAccessoryView = doneToolbar;

textField.delegate = self;

selectPicker.delegate = self;

selectPicker.dataSource = self;

selectPicker.frame = CGRectMake(0, 480, 320, 216);//隐藏UIPickerView

}

 

//Toolbar 的item的完成按钮

– (IBAction)selectButton:(id)sender {

[textField endEditing:YES];

}

 

-(NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView{

return 1;

}

-(NSInteger) pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component{

return [pickerArray count];

}

-(NSString*) pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component{

return [pickerArray objectAtIndex:row];

}

//在textField结束编辑时,显示PickerView选择中的数据

-(void)textFieldDidEndEditing:(UITextField *)textField{

NSInteger row = [selectPicker selectedRowInComponent:0];

self.textField.text = [pickerArray objectAtIndex:row];

}

 

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注