[英]UIDatePicker still showing date with time in textfield - Objective-c
我想将我的文本字段的输入视图设置为日期选择器,选择日期后,我只想用日期格式填充文本字段,但是缺少某些内容,并且文本字段也显示了带有日期的时间,我在这里找不到它
datePicker = [[UIDatePicker alloc]init];
[datePicker setDate:[NSDate date]];
datePicker.datePickerMode = UIDatePickerModeDate;
[datePicker addTarget:self action:@selector(updateTextField:) forControlEvents:UIControlEventValueChanged];
[self.dob setInputView:datePicker];
这是在viewDidLoad()方法中定义的,并且datePicker是.m文件的实例变量。 然后我在viewDidLoad()外部应用了以下方法
- (NSString *)formatDate:(NSDate *)date
{
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateStyle:NSDateFormatterMediumStyle];
[dateFormatter setDateFormat:@"MM '/'dd'/'yyyy"];
NSString *formattedDate = [dateFormatter stringFromDate:date];
return formattedDate;
}
-(void)updateTextField:(id)sender
{
datePicker = (UIDatePicker*)self.dob.inputView;
self.dob.text = [NSString stringWithFormat:@"%@",datePicker.date];
}
还有一个问题,有时它显示一个空白的灰色框而不是datePicker。
换线
self.dob.text = [NSString stringWithFormat:@"%@",datePicker.date];
用
self.dob.text = [self formatDate:datePicker.date];
在.h文件中
@property(nonatomic,strong)UIDatePicker *datePiker;
@property(nonatomic,strong)UITextField *dobField;
现在在viewDidLoad()中的.m文件
self.datePiker = [[UIDatePicker alloc] initWithFrame:CGRectZero];
self.datePiker.datePickerMode = UIDatePickerModeDate;
self.datePiker.date = [NSDate date];
[self.datePiker addTarget:self action:@selector(LabelChange:)forControlEvents:UIControlEventValueChanged];
self.dobField=[[UITextField alloc]initWithFrame:CGRectMake(20,30, DEVICE_SIZE.width-40, 30)];
self.dobField.textColor=[UIColor blackColor];
self.dobField.returnKeyType=UIReturnKeyDefault;
self.dobField.clearButtonMode=UITextFieldViewModeNever;
self.dobField.borderStyle=UITextBorderStyleNone;
self.dobField.font=textFieldFont;
self.dobField.placeholder=@"Date of Birth";
self.dobField.inputView = self.datePiker;
接着
- (void)LabelChange:(id)sender{
NSString *myString = @"10/05/2001";
NSDateFormatter *df = [[NSDateFormatter alloc] init];
df.dateFormat = @"dd/MM/yyyy";
NSDate *yourDate = [df dateFromString:myString];
NSLog(@"new date formate is %@",[df stringFromDate:yourDate]);
self.dobField.text = [NSString stringWithFormat:@"%@",[df stringFromDate:self.datePiker.date]];
}
它对我的工作尝试的代码希望它会工作
更改您的更新文本字段的实现,如下所示
-(void)updateTextField:(UIDatePicker *)sender
{
self.dob.text = [NSString stringWithFormat:@"%@",[self formatDate:sender.date]];
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.