Как добавить дату UIDatePicker в UITextField?

Я запрашиваю у пользователей дату рождения на экране регистрации моего приложения. Я не могу понять, как получить дату рождения UIDatePicker для отображения. Я попытался использовать следующий код, но он отображает только дату и время:

  UIDatePicker *dp = [[UIDatePicker alloc]init]; _textBirthday.inputView = dp; 

Кроме того, как я могу установить его, чтобы он принимал только пользователей, родившихся после определенного года?

3 Solutions collect form web for “Как добавить дату UIDatePicker в UITextField?”

1) в файле .h вашего контроллера просмотра убедитесь, что вы назначили делегат текстового поля:

 @interface YourViewController : UIViewController <UITextFieldDelegate> 

а также IBOutlet дня рождения Textfield

2) объявите выбор даты в качестве переменной класса, чтобы сделать ее доступной из всех разных методов в классе. в файле .m выполните следующие действия после импорта и перед реализацией:

 @interface YourViewController () { UIDatePicker *datePicker; } @end 

3) in viewdidload:

 // make the textfield its own delegate self.BirthdateTextfield.delegate = self; // alloc/init your date picker, and (optional) set its initial date datePicker = [[UIDatePicker alloc]init]; [datePicker setDate:[NSDate date]]; //this returns today's date // theMinimumDate (which signifies the oldest a person can be) and theMaximumDate (defines the youngest a person can be) are the dates you need to define according to your requirements, declare them: // the date string for the minimum age required (change according to your needs) NSString *maxDateString = @"01-Jan-1996"; // the date formatter used to convert string to date NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; // the specific format to use dateFormatter.dateFormat = @"dd-MMM-yyyy"; // converting string to date NSDate *theMaximumDate = [dateFormatter dateFromString: maxDateString]; // repeat the same logic for theMinimumDate if needed // here you can assign the max and min dates to your datePicker [datePicker setMaximumDate:theMaximumDate]; //the min age restriction [datePicker setMinimumDate:theMinimumDate]; //the max age restriction (if needed, or else dont use this line) // set the mode [datePicker setDatePickerMode:UIDatePickerModeDate]; // update the textfield with the date everytime it changes with selector defined below [datePicker addTarget:self action:@selector(updateTextField:) forControlEvents:UIControlEventValueChanged]; // and finally set the datePicker as the input mode of your textfield [self.BirthdateTextfield setInputView:datePicker]; 

4) в том же файле .m, определите селектор, который будет обновлять текстовое поле при каждом изменении выбора даты:

 -(void)updateTextField:(id)sender { UIDatePicker *picker = (UIDatePicker*)self.BirthdateTextfield.inputView; self.BirthdateTextfield.text = [self formatDate:picker.date]; } 

5) последнее, но не менее важное: это метод, называемый до назначения даты в textfield.text (textfield.text требуется строка, а не дата):

 - (NSString *)formatDate:(NSDate *)date { NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; [dateFormatter setDateStyle:NSDateFormatterShortStyle]; [dateFormatter setDateFormat:@"dd-MMM-yyyy"]; NSString *formattedDate = [dateFormatter stringFromDate:date]; return formattedDate; } 

наслаждайтесь кодированием!

Установите UIDatePickerModeDate в UIDatePickerModeDate .

 datePicker.datePickerMode = UIDatePickerModeDate; 

Apple Docs : выбор даты отображает месяцы, дни месяца и годы. Точный порядок этих элементов зависит от настройки локали. Примером этого режима является [November | 15 | 2007]. Доступно в iOS 2.0 и более поздних версиях.

Используйте следующий код, который вы получите автоматически:

 - (void)viewDidLoad { [super viewDidLoad]; UIDatePicker *datePicker = [[UIDatePicker alloc]init]; [datePicker setDate:[NSDate date]]; datePicker.datePickerMode = UIDatePickerModeDate; [datePicker addTarget:self action:@selector(dateTextField:) forControlEvents:UIControlEventValueChanged]; [self.dobTextField setInputView:datePicker]; } -(void) dateTextField:(id)sender{ UIDatePicker *picker = (UIDatePicker*)self.dobTextField.inputView; [picker setMaximumDate:[NSDate date]]; NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init]; NSDate *eventDate = picker.date; [dateFormat setDateFormat:@"dd/MM/yyyy"]; NSString *dateString = [dateFormat stringFromDate:eventDate]; self.dobTextField.text = [NSString stringWithFormat:@"%@",dateString]; } 
  • UITextField в UISearchBar в iOS 7
  • Отобразить UIMenuController в редакцииDidBegin UITextField
  • textFieldShouldEndEditing вызывается несколько раз
  • Как получить левую прописку на изображении UITextField leftView?
  • object c textField: selectВсе текст не всегда работает
  • iphone, отключайте клавиатуру при касании вне UITextField
  • Можно ли настроить UITextField и UITextView, чтобы сделать шрифты одинаковыми, или они просто разные?
  • Прокрутка по текстуField при запуске Редактирование и клавиатура появляются
  • UIAlertController не является иерархией окон
  • startFirstResponder очень медленный
  • iOS UITextField - отклонение пользовательского вводаView
  • Interesting Posts

    Сохранять исходные данные изображения с измененными метаданными (без повторного кодирования) на iOS

    Невозможно подстроить значение типа с индексом типа (String, Int) Swift 2

    UIButton не показывает подсветку при касании

    ARC: установка флагов компилятора для -fno-objc-arc и ошибок сборки

    Многострочная метка в пользовательской ячейке перекрывает следующую ячейку при быстрой прокрутке

    Как использовать libxml в Swift?

    Активировать светодиод для приложения фонарика

    Расширение iOS 8 Как обнаружить работу

    «Ionic run ios» Как добавить профили подготовки

    Как перехватить любые вызовы openURL UIApplication?

    Как работает dispatch_set_target_queue?

    Изменение цвета ячейки UITableView в прокручиваемом запросе

    Перенос данных sql в приложениях iPhone

    Uncrustify: вложенное блокирование блоков неверно

    Любопытно узнать трюк для живых обоев на экране блокировки на iPhone

    PhoneC: Разработка iOS проста с помощью XCode, Swift3, UITableView, cocatouch, давайте создадим приложения для iPhone, iPad и Macbook.