繁体   English   中英

如何在文本归档时弹出datePicker,在编辑完成后消失

[英]how to pop up datePicker when text filed click and disappear when editing done

我有类似下面的东西

在此输入图像描述 日期选择器视图总是在那里如何让它在点击输入日期时弹出显示,当我点击背景时,日期选择器应该关闭

我刚刚做了日期选择器视图习惯,但我不知道如何做这个出现和消失的事情

好。 以下是一些动画要求的示例代码。

- (void) showView
{
    [self.view addSubview:yourDatePickerView];
        yourDatePickerView.frame = CGRectMake(0, -250, 320, 50);
        [UIView animateWithDuration:1.0
                         animations:^{
                             yourDatePickerView.frame = CGRectMake(0, 152, 320, 260);
                         }];
}

以下是隐藏DatePickerView的方法

- (void) hideView
{
    [UIView animateWithDuration:0.5
                         animations:^{
                             yourDatePickerView.frame = CGRectMake(0, -250, 320, 50);
                         } completion:^(BOOL finished) {
                             [yourDatePickerView removeFromSuperview];
                         }];
}

- (BOOL)textFieldShouldBeginEditing:(UITextField *)textField
{
    if(textField == yourDateTextField)
    {
         [self showView];
         return NO; // preventing keyboard from showing
    }
    return YES;
}


- (void)textFieldDidEndEditing:(UITextField *)textField
{
    if(textField == yourDateTextField)
    {
         [self hideView];
    }
}

这就是你所需要的。

您应该在委托方法中标识文本字段。

- (BOOL)textFieldShouldBeginEditing:(UITextField *)textField
{
    if(textField == DATE_TEXT_FIELD)
    {
             //Display date picker
    }
}


- (void)textFieldDidEndEditing:(UITextField *)textField
{

        if(textField == DATE_TEXT_FIELD)
        {
                 //Hide date picker
            }
}
  • 创建一个包含此日期选择器视图的UIView引用。
  • 现在将此datePickerContainerView分配给textField.inputView属性。
  • 然后将textfield.delegate分配给self并实现textFieldShouldReturn方法。 在那个方法中,写下这一行

    [textField resignFirstResponder];

    返回YES;

现在,当您点击该文本字段时,它将根据inputview属性设置加载datepicker视图来代替默认键盘。

在为datePicker执行代码之前,请确保键入以下代码行

    [textField resignFirstResponder];

我们知道,键盘是textField的默认第一响应者。所以你应该首先重新签名然后编码选择器,否则键盘也会弹出。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM