繁体   English   中英

UIDatePicker仍在文本字段中显示带时间的日期-Objective-C

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM