2016-04-09 2 views
1

Я использую четыре текстовых поля на одной странице. Для первого и второго текстовых полей я использую обычную клавиатуру. Третий и четвертый для значения времени - я использую программно созданный DatePicker и устанавливаю его через textField.inputView в методе IBAction.DatePicker через textField.inputView отображается только во второй раз (обычная клавиатура вызывается в первый раз)

Дело в том, что мой DatePicker отображается только во второй раз - вместо этого используется обычная клавиатура.

Это происходит только один раз - когда я открываю страницу и нажимаю на текстовое поле со значением времени в первый раз. Когда я нажимаю на это текстовое поле второй раз - он работает нормально (отображается мой датпикер)

Как это исправить?

Пример кода:

- (IBAction)wakeUpWeekdaysPressed:(id)sender { 
    UIDatePicker *timePicker = [[UIDatePicker alloc] init]; 
    timePicker.datePickerMode = UIDatePickerModeTime; 

    UIToolbar* toolbar = [[UIToolbar alloc] initWithFrame:CGRectMake(0, 0, CGRectGetWidth(self.view.frame), 44)]; 
    UIBarButtonItem* doneButton = [[UIBarButtonItem alloc] 
            initWithBarButtonSystemItem:UIBarButtonSystemItemDone target:self action:@selector(weekdaysTimePickerDoneAction:)]; 
    UIBarButtonItem* cancelButton = [[UIBarButtonItem alloc] 
            initWithBarButtonSystemItem:UIBarButtonSystemItemCancel target:self action:@selector(weekdaysTimePickerCancelAction:)]; 
    UIBarButtonItem* flexibleSpace = [[UIBarButtonItem alloc] 
             initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace target:nil action:nil]; 
    [toolbar setItems:@[cancelButton, flexibleSpace, doneButton]]; 
    // toolbar.barStyle = UIBarStyleBlackTranslucent; 
    toolbar.translucent = YES; 

    [_wakeUpTimeWeekdays setInputView:timePicker]; 
    [_wakeUpTimeWeekdays setInputAccessoryView:toolbar]; 
} 

ответ

1

Я решил проблему другим способом.

DatePicker инициализировался в методе IBAction для текстового поля. Основной причиной основной проблемы было то, что я выбрал отправленный тип события для метода Editing Did End. Поэтому я изменил отправленное событие на Editing Did Begin.

Теперь он отлично работает. Спасибо.

enter image description here

0

Просто напишите свой код в viewdidload вместо этого метода.

+0

не помогает, теперь либо DatePicker или клавиатуры не отображаются для этого текстового поля –

+0

(IBAction) wakeUpWeekdaysPressed: метод (ID) отправителя называется любую кнопку нажать? если да, тогда не делайте этого. вставьте этот код в viewdidload и не удаляйте его. – Lion

+0

уже отправил мое собственное решение –

Смежные вопросы