你的位置:首页 > 操作系统

[操作系统]iOS开发小功能的自学思路(弹出生日键盘为例)


 

 

 1   #import "ViewController.h" 2  3   @interface ViewController () <UITextFieldDelegate> 4   @property (weak, nonatomic) IBOutlet UITextField *birthdayLabel; 5   @property (strong, nonatomic)UIDatePicker *datePicker; 6    7   @end 8    9   @implementation ViewController10   11   - (void)viewDidLoad {12     [super viewDidLoad];13     _birthdayLabel.delegate = self;14     15   //  设置自定义键盘16     [self setupBirthdayKeyboard];17     18   }19   20   - (void)setupBirthdayKeyboard21   {22   //  创建UIDatePicker,有默认的frame,所以不用设置尺寸23     UIDatePicker *picker = [[UIDatePicker alloc] init];24     _datePicker = picker;25   //  设置本地化(本地语言)26     picker.locale = [NSLocale localeWithLocaleIdentifier:@"zh"];27   //  设置时间显示格式,还有其他好多种28     picker.datePickerMode = UIDatePickerModeDate;29    30     //监听UIDatePicker的滚动31     [picker addTarget:self action:@selector(dateChange:) forControlEvents:UIControlEventValueChanged];32     self.birthdayLabel.inputView = picker;33   }34   35   - (void)dateChange:(UIDatePicker *)datePicker36   {37   //  这样就可以获得生日键盘的 datePicker.date38   //  NSLog(@"%@",datePicker.date);39   //  NSLog(@"%s",__func__);40     41     42     //把获得的日期转化成字符串,赋值到birthdayLabel中43     NSDateFormatter *fmt = [[NSDateFormatter alloc] init];44     fmt.dateFormat = @"yyyy-MM-dd";45     NSString *datestr = [fmt stringFromDate:datePicker.date];46     _birthdayLabel.text = datestr;47     48   }49   50   //是否允许开始编辑51   //- (BOOL)textFieldShouldBeginEditing:(UITextField *)textField52   //{53   //  return NO;54   //}55   //是否允许用户改变字符(是否允许输入文字)56   - (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string{57     return NO;58   }59   - (void)textFieldDidBeginEditing:(UITextField *)textField60   {61     //获取当前dataPicker的日期62      [self dateChange:_datePicker];63   }64   - (void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event65   {66     [self.view endEditing:YES];67   }68   @end