iPhone display date picker on UITextField touch

后端 未结 8 1476
一生所求
一生所求 2020-11-30 00:08

I followed this thread: datepicker by clicking on textfield

I imported both of the following protocols:

@interface ViewController : UIViewController&         


        
8条回答
  •  刺人心
    刺人心 (楼主)
    2020-11-30 00:39

    Below is how I am displaying the date picker.

    - (void)textFieldDidBeginEditing:(UITextField *)textField
    {
    
    
        self.activeTextField = textField;
    
        // Create a date picker for the date field.
        UIDatePicker *datePicker = [[UIDatePicker alloc]init];
        datePicker.datePickerMode = UIDatePickerModeDate;
        datePicker.minimumDate = [NSDate dateWithTimeIntervalSinceNow:-31536000];
        [datePicker setDate:[NSDate date]];
        [datePicker addTarget:self action:@selector(updateDateField:) forControlEvents:UIControlEventValueChanged];
    
        // If the date field has focus, display a date picker instead of keyboard.
        // Set the text to the date currently displayed by the picker.
        if (textField.tag == 1)
        {
        self.date.inputView = datePicker;
        self.date.text = [self formatDate:datePicker.date];
        }   
    }
    
    
    // Called when the date picker changes.
    - (void)updateDateField:(id)sender
    {
        UIDatePicker *picker = (UIDatePicker*)self.date.inputView;
        self.date.text = [self formatDate:picker.date];
    }
    
    
    // Formats the date chosen with the date picker.
    - (NSString *)formatDate:(NSDate *)date
    {
        NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
        [dateFormatter setDateStyle:NSDateFormatterShortStyle];
        [dateFormatter setDateFormat:@"MM'/'dd'/'yyyy"];
        NSString *formattedDate = [dateFormatter stringFromDate:date];
        return formattedDate;
    }
    

提交回复
热议问题