弹出生日键盘
1 // 2 // ViewController.m 3 // 4.20 自定义生日键盘 4 // 5 // Created by hissia on 16/4/20. 6 // Copyright © 2016年 suiyue. All rights reserved. 7 // 8 9 #import "ViewController.h" 10 11 @interface ViewController () <UITextFieldDelegate> 12 @property (weak, nonatomic) IBOutlet UITextField *birthdayLabel; 13 14 @property (strong, nonatomic)UIDatePicker *datePicker; 15 16 @end 17 18 @implementation ViewController 19 //是否允许输入文字 20 - (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string{ 21 return NO; 22 } 23 24 - (void)viewDidLoad { 25 [super viewDidLoad]; 26 _birthdayLabel.delegate = self; 27 28 // 设置自定义键盘 29 [self setupBirthdayKeyboard];
30 31 } 32 33 //自定义键盘格式 34 - (void)setupBirthdayKeyboard 35 { 36 // 创建UIDatePicker,有默认的frame,所以不用设置尺寸 37 UIDatePicker *picker = [[UIDatePicker alloc] init]; 38 39 // 赋值 _datePicker 40 _datePicker = picker; 41 42 // 设置本地化(本地语言) 43 picker.locale = [NSLocale localeWithLocaleIdentifier:@"zh"]; 44 45 // 设置时间显示格式,还有其他好多种 46 picker.datePickerMode = UIDatePickerModeDate; 47 48 //监听UIDatePicker的滚动 49 [picker addTarget:self action:@selector(dateChange:) forControlEvents:UIControlEventValueChanged]; 50 self.birthdayLabel.inputView = picker; 51 } 52 53 - (void)dateChange:(UIDatePicker *)datePicker 54 { 55 // 这样就可以获得生日键盘的 datePicker.date 56 // NSLog(@"%@",datePicker.date); 57 // NSLog(@"%s",__func__); 此打印方法的的各种属性 58 59 //把获得的日期转化成字符串,赋值到birthdayLabel中 60 NSDateFormatter *fmt = [[NSDateFormatter alloc] init]; 61 fmt.dateFormat = @"yyyy-MM-dd"; 62 NSString *datestr = [fmt stringFromDate:datePicker.date]; 63 _birthdayLabel.text = datestr; 64 65 } 66 67 //文本框开始编辑时候监听事件 68 - (void)textFieldDidBeginEditing:(UITextField *)textField 69 { 70 //获取当前dataPicker的日期 71 [self dateChange:_datePicker]; 72 } 73 //点击空白处弹回生日键盘 74 - (void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event 75 { 76 [self.view endEditing:YES]; 77 } 78 @end