-1

我需要一个日期选择器出现在文本字段的点击上。我已经做到了。现在我有两个问题:1.它同时显示日期和时间。我只需要约会。2. 如果我点击背景中的某个地方,我需要选择器消失。

我的代码是:

- (void)viewDidLoad
{

    [super viewDidLoad];
    UIDatePicker *datePicker = [[UIDatePicker alloc]init];
    datePicker.datePickerMode = UIDatePickerModeDate;

    [datePicker setDate:[NSDate date]];

     [datePicker addTarget:self action:@selector(updateTextField:) forControlEvents:UIControlEventValueChanged];
     [self.text1 setInputView:datePicker];
        // Do any additional setup after loading the view, typically from a nib.
}
-(void)updateTextField:(id)sender
{
    UIDatePicker *picker = (UIDatePicker*)self.text1.inputView;
        self.text1.text = [NSString stringWithFormat:@"%@",picker.date];
}

我用过 datePicker.datePickerMode = UIDatePickerModeDate;,但我仍然有时间。有人可以帮忙吗?

4

2 回答 2

1
NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
[dateFormat setDateFormat:@"yyyy-MM-dd"];
NSString *yeardate = [dateFormat stringFromDate:[NSDate date]];
//Set this yeardate to your datepicker.
[datePicker setDate:[dateFormat dateFromString:yeardate]];

希望这可以帮助。

于 2013-05-11T08:40:18.680 回答
0

您将日期的描述分配给 textField,使用 NSDateFormatter 从 datePicker 转换日期。

要关闭你可以添加一个 tapGestureRecognizer 到你的视图,或者你可以添加一个附件输入视图到你的 textField

- (void)viewDidLoad
{
    [super viewDidLoad];

    UITapGestureRecognizer *tapRecognizer  = [UITapGestureRecognizer new];
    [tapRecognizer addTarget:self action:@selector(didTapView:)];
    [self.view addGestureRecognizer:tapRecognizer];

}

- (void)didTapView:(UITapGestureRecognizer *)tapRecognizer{
    [self.textField resignFirstResponder];
}

或者

- (void)viewDidLoad
{
    [super viewDidLoad];

     UIToolbar *toolbar =[[UIToolbar alloc]initWithFrame:CGRectMake(0,0, self.view.frame.size.width,44)];
    toolbar.barStyle =UIBarStyleBlackOpaque;

    UIBarButtonItem *cancelButton = [[UIBarButtonItem alloc]initWithBarButtonSystemItem:UIBarButtonSystemItemCancel
                                                                                 target:self
                                                                                 action:@selector(cancelButtonPressed:)];

    UIBarButtonItem *flexibleSpace =[[UIBarButtonItem alloc]initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace
                                                                                 target:self
                                                                                 action:nil];

    UIBarButtonItem *doneButton =[[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemDone
                                                                               target:self
                                                                               action:@selector(doneButtonPressed:)];
    [toolbar setItems:@[cancelButton,flexibleSpace, doneButton]];

    _activeTextField.inputAccessoryView = toolbar;

}
于 2013-05-11T08:46:10.390 回答