Ios 通过textField.inputView的日期选择器仅在第二次显示(第一次调用常规键盘)

Ios 通过textField.inputView的日期选择器仅在第二次显示(第一次调用常规键盘),ios,objective-c,datepicker,keyboard,Ios,Objective C,Datepicker,Keyboard,我在一个页面上使用四个文本字段。对于第一个和第二个文本字段,我使用常规键盘。 第三个和第四个是时间值-我使用编程创建的DatePicker,并在iAction方法中通过textField.inputView进行设置 关键是我的日期选择器只在第二次显示-常规键盘被称为第一次 它只发生一次——当我第一次打开页面并单击带有时间值的文本字段时。当我第二次点击此文本字段时,它工作正常(显示我的日期选择器) 我怎样才能解决这个问题 代码示例: - (IBAction)wakeUpWeekdaysPresse

我在一个页面上使用四个文本字段。对于第一个和第二个文本字段,我使用常规键盘。 第三个和第四个是时间值-我使用编程创建的DatePicker,并在iAction方法中通过textField.inputView进行设置

关键是我的日期选择器只在第二次显示-常规键盘被称为第一次

它只发生一次——当我第一次打开页面并单击带有时间值的文本字段时。当我第二次点击此文本字段时,它工作正常(显示我的日期选择器)

我怎样才能解决这个问题

代码示例:

- (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];
}

只需在viewdidload中编写代码,而不是使用此方法。

我用另一种方法解决了这个问题

正在文本字段的iAction方法中初始化日期选择器。 主要问题的根本原因是我为方法
选择了sent事件类型编辑Did End
。因此,我将发送事件更改为
编辑确实开始了

现在它工作得很好。多谢各位


不起作用,现在此文本字段(iAction)的日期选择器或键盘不显示WakeUpWeekDays已按下:(id)在任何按钮单击时调用的发件人方法?如果是,那么不要这样做。将此代码粘贴到viewdidload中,不要辞职FirstResponder。无需执行iAction。您可以在vieddidload中轻松完成此设置。这是标准的方法。如果你遵循它,你将来就不会面临这种问题了。!我已经根据更新了我的答案。谢谢。你的选择同样有效。将此代码保存在单独的iAction方法中的一点是,我需要使用textField中的值填充此datePicker。我还不知道怎么做。