Проблема, связанная с текстовым полем и указателем даты

ios iphone swift

505 просмотра

1 ответ

У меня есть проблема, связанная с скрытием и отображением представления выбора даты при нажатии на текстовое поле ... На самом деле у меня есть 2 текстовых поля .. Вот мое изображение проблемы ...

проблема

DatePicker показывать и скрывать при нажатии на текстовый файл ... он должен отображаться при начале редактирования и скрываться при завершении редактирования ...

введите описание изображения здесь

В первый раз, когда мы нажимаем «текстовое поле 1», оно работает хорошо, но как только оно resignFirstResponderи заставляет второе поле ответить, возникает проблема.

КОД

func textFieldShouldBeginEditing(textField: UITextField) -> Bool {
    self.datepicker.alpha = 0.0
    self.datepicker.hidden = false
    UIView.animateWithDuration(0.3, animations: { () -> Void in
        self.datepicker.alpha = 1.0
        self.conDateHeight.constant = 100.0
        self.datepicker.addTarget(self, action: Selector("dataPickerChanged:"), forControlEvents: UIControlEvents.ValueChanged)
    })
    return true
}

func textFieldShouldEndEditing(textField: UITextField) -> Bool {
        UIView.animateWithDuration(0.3, animations: {
        self.datepicker.alpha = 0.0
        }, completion: {
            (value: Bool) in
            self.conDateHeight.constant = 0.0
            self.datepicker.hidden = true
        })
    return true
}


func textFieldShouldReturn(textField: UITextField) -> Bool {
    if textField == self.txtToDate {
        txtToDate.resignFirstResponder()
        txtFromDate.becomeFirstResponder()
    }
    else if textField == self.txtFromDate {
        txtFromDate.resignFirstResponder()
        txtToDate.becomeFirstResponder()
    }
    return true
}  

Когда я прячу клавиатуру после 1-го текстового поля, а затем ввожу во второе текстовое поле, все в порядке ... в противном случае проблема в том, как она есть

Автор: EI Captain v2.0 Источник Размещён: 12.11.2019 09:27

Ответы (1)


1 плюс

Решение

Тесто для использования выбора даты в качестве входного просмотра

UIView *viewDateInput = [[UIView alloc] initWithFrame:CGRectMake(0, 0,[UIScreen mainScreen].bounds.size.width, 200)];
[viewDateInput setBackgroundColor:[UIColor whiteColor]];
self.pickerDate = [[UIDatePicker alloc] initWithFrame:CGRectMake(0, 0, viewDateInput.frame.size.width, viewDateInput.frame.size.height)];
self.pickerDate.datePickerMode = UIDatePickerModeDate;
[viewDateInput addSubview:self.pickerDate];
[self.pickerDate addTarget:self action:@selector(dateChanged:) forControlEvents:UIControlEventValueChanged];
[self.txtDate setInputView:viewDateInput];

Функция для изменения даты

- (void)dateChanged:(id)sender
{
    NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
    [dateFormatter setDateFormat:@"yyyy-MM-dd"];
    NSString *currentTime = [dateFormatter stringFromDate:self.pickerDate.date];
self.txtDate.text = currentTime;
}
Автор: Ashish Kakkad Размещён: 11.06.2015 02:26
Вопросы из категории :
32x32