0

iOS のバージョンを 8.2 に更新しましたが、UIDatePicker と UITextfield のキーボードの非表示に関するいくつかの問題に直面しています。これがdatepickerの私のコードです:

- (void)textFieldDidBeginEditing:(UITextField *)textField
{
[textField resignFirstResponder];

    UIView *myView = [[UIView alloc] initWithFrame:CGRectMake(0, 0,self.view.bounds.size.width, self.view.bounds.size.height)];
    [myView setBackgroundColor:[UIColor colorWithRed:0.0 green:0.0 blue:0.0 alpha:0.5]];
    [self.view addSubview:myView];

    UIToolbar *toolbar = [[UIToolbar alloc] initWithFrame:CGRectMake(0, self.view.bounds.size.height - 244, self.view.bounds.size.width, 44)];

    UIBarButtonItem *done = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemDone target:self action:@selector(dismissActionSheet)];
    toolbar.items = @[[[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace target:nil action:nil], done];
    toolbar.barStyle = UIBarStyleBlackOpaque;
    [self.view addSubview:toolbar];

   UIDatePicker *datePicker = [[UIDatePicker alloc] initWithFrame:CGRectMake(0, self.view.bounds.size.height - 200, 0, 0)];
    datePicker.datePickerMode = UIDatePickerModeDate;
    datePicker.hidden = NO;
    datePicker.date = [NSDate date];
    datePicker.maximumDate = [NSDate date];
    [datePicker addTarget:self
                   action:@selector(LabelChange:)
         forControlEvents:UIControlEventValueChanged];
    [self.view addSubview:datePicker];
}

しかし、キーボードは隠れていません。

4

2 に答える 2

2

少し遅れて、datePicker の作成を呼び出す必要があります。コードを使用して

dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(.1 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
        //Your code here
    });

これで問題が解決します。

注:-しかし、テキストフィールドの入力タイプとして日付ピッカーを使用している場合は、viewDidロードでdatePickerを作成し、テキストフィールドのinputViewとして設定するだけです->[textField setInputView:yourPicker];すべてを処理します。キーボードではなくテキストフィールドタップで日付ピッカーを作成します。

于 2015-04-11T08:08:33.517 に答える