我一直在使用多層教程和stackoverflow
答案將它們組合在一起。我有一個UITextField
,當用戶點擊滑動UIDatePicker
(而不是鍵盤)。日期選擇器關閉後,TextField
應更新爲所選日期。UIDatePicker沒有更新UITextField
但是,無論您將其更改爲什麼,它都只有當前日期/時間。我錯過了什麼?我想要格式化爲MM/dd/yyyy。
- (void)viewDidLayoutSubviews {
[super viewDidLayoutSubviews];
//birthday view
UIDatePicker *datePicker = [[UIDatePicker alloc] init];
UIToolbar *doneBar = [[UIToolbar alloc] initWithFrame:CGRectMake(0, 0, CGRectGetWidth(self.view.frame), 44)];
datePicker.datePickerMode = UIDatePickerModeDate;
[datePicker addTarget:self action:@selector(updateTextField:) forControlEvents:UIControlEventValueChanged];
_birthdayField.inputView = datePicker;
[_birthdayField setInputAccessoryView:doneBar];
[doneBar setBarStyle:UIBarStyleDefault];
UIBarButtonItem *spacer = [[UIBarButtonItem alloc]
initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace
target:nil
action:nil];
[doneBar setItems: [NSArray arrayWithObjects:spacer, [[UIBarButtonItem alloc]
initWithTitle:@"Done"
style:UIBarButtonItemStyleDone
target:self
action:@selector(datePickerDone:)],nil ] animated:YES];
}
- (IBAction)datePickerDone:(id)sender {
[_birthdayField resignFirstResponder];
}
-(void)updateTextField:(id)sender {
if([_birthdayField isFirstResponder]) {
UIDatePicker *picker = (UIDatePicker*)_birthdayField.inputView;
_birthdayField.text = [NSString stringWithFormat:@"%@", picker.date];
}
}
我認爲這是我在updateTextField中缺少的東西。
我該如何阻止它這樣做?去除if塊沒有區別 –