iPhone datepicker instead of keyboard?

后端 未结 5 775
星月不相逢
星月不相逢 2020-12-07 17:43

How would you do that?

I have a form with a UITextField. When I click in it I would like to display a UIDatePicker instead of the default Keyboard that pops-up by de

5条回答
  •  被撕碎了的回忆
    2020-12-07 18:34

    in .h

    UIDatePicker *datePicker;
    NSDate *date;
    UIToolbar *keyboardToolbar;
    

    in ViewDidLoad:

    if (keyboardToolbar == nil) {
        keyboardToolbar = [[UIToolbar alloc] initWithFrame:CGRectMake(0, 0, self.view.bounds.size.width, 44)];
        [keyboardToolbar setBarStyle:UIBarStyleBlackTranslucent];
    
        UIBarButtonItem *extraSpace = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace target:nil action:nil];
    
        UIBarButtonItem *accept = [[UIBarButtonItem alloc] initWithTitle:@"Accept" style:UIBarButtonItemStyleDone target:self action:@selector(closeKeyboard:)];
    
        [keyboardToolbar setItems:[[NSArray alloc] initWithObjects: extraSpace, accept, nil]];
    }
    
    self.txtDate.inputAccessoryView = keyboardToolbar;
    
    datePicker = [[UIDatePicker alloc] init];
    datePicker.datePickerMode = UIDatePickerModeDate;
    [datePicker addTarget:self action:@selector(datePickerValueChanged:) forControlEvents:UIControlEventValueChanged];
    
    self.txtDate.inputView = datePicker;
    
    
    - (void)datePickerValueChanged:(id)sender{
    
    date = datePicker.date;
    
    NSDateFormatter *df = [[NSDateFormatter alloc] init];
    [df setDateFormat:@"dd/MM/YYYY"];
    
    
    [self.txtDate setText:[df stringFromDate:date]];
    }
    

    in storyboard add to txtDate -> EditingDidEnd

    - (IBAction)establishHour:(id)sender{
    
    hour = hourPicker.date;
    
    NSDateFormatter *hf = [[NSDateFormatter alloc] init];
    [hf setDateFormat:@"HH:MM"];
    
    [self.txtHour setText:[hf stringFromDate:hour]];
    
    }
    

    Sets the keyboard as DatePicker and created a toolbar with a button to accept the selection.

提交回复
热议问题