在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];
}