iOS - Отключить UIDatePicker в виде inputView - PullRequest
6 голосов
/ 06 марта 2012

В моем пользовательском интерфейсе есть текстовое поле, которое, когда оно выбрано, представляет UIDatePicker вместо клавиатуры по умолчанию, как я могу настроить кнопку для отмены выбора, когда пользователь закончил?

Ответы [ 4 ]

8 голосов
/ 06 марта 2012

То, что я делаю, - это мой inputView в качестве пользовательского представления, которое содержит UIDatePicker и панель инструментов над ним с кнопкой «Done», связанной с методом, вызывающим метод делегата, чтобы сообщить объекту, которому принадлежит * 1002.* чтобы закрыть «клавиатуру», позвонив resignFirstResponder.

1 голос
/ 28 сентября 2012

Создайте UIView (а именно customDatePickerView) и в этом представлении создайте указатель даты, кнопку «Готово» и кнопку «Отмена» в XIB.В текстовом поле делегат:

- (void)textFieldDidBeginEditing:(UITextField *)textField
{
    if (textField == textfieldName) {
        [textfieldName resignFirstResponder];
         //show the view
         self.customDatePickerView.hidden = NO;

    }

}//dismisses keyboard

Функция выбора значения даты изменена

- (IBAction)onDatePickerClick:(id)sender {

    NSDateFormatter  *dateFormatter = [[NSDateFormatter alloc]init];
    [dateFormatter setDateFormat:@"MM/dd/YYYY"];
    NSDate *selectedDate = [self.wellRecordDatePicker date];
    NSString *recordDate = [dateFormatter stringFromDate:selectedDate];
    self.yourTextfieldName.text = recordDate;


}

- (IBAction)onDoneBtnClick:(id)sender
{
       self.customDatePickerView.hidden = YES;
}
- (IBAction)onCancelBtnClick:(id)sender
{
       self.customDatePickerView.hidden = YES;
}

Надеюсь, это поможет вам.

0 голосов
/ 30 августа 2016

Вы можете решить эту проблему, добавив

[self.view endEditing:YES];

Добавьте это, где вы хотите отменить выбор даты, как я добавил это на жесте крана
На viewDidLoad добавлен Tapgesture

 UITapGestureRecognizer *gesRecognizer = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(handleTap:)]; // Declare the Gesture.
    gesRecognizer.delegate = self;
    [self.view addGestureRecognizer:gesRecognizer];

После добавления этого в viewdidLoad Добавьте этот метод для обнаружения распознавателя жестов

- (void)handleTap:(UITapGestureRecognizer *)gestureRecognizer{
    NSLog(@"Tapped");
    [self.view endEditing:YES];
}
0 голосов
/ 06 марта 2012

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

Таким образом, кнопка перемещается в представлении UIDatePicker, и они выглядят «подключенными» к пользователю. Вы даже можете определить это UIView в своем кончике и использовать addSubview: во время выполнения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...