【问题标题】:Set date value by manually and using date picker both in IOS通过手动设置日期值并在 IOS 中使用日期选择器
【发布时间】:2016-12-09 05:41:15
【问题描述】:

我已经尽可能多地搜索了,我只找到了一部分需求的解决方案,而不是全部,所以请仔细阅读我的场景,然后继续。

场景

我的 iOS 应用程序中有一些编辑文本字段,其中我必须允许用户在字段中手动输入日期或单击打开日期选择器并从那里选择日期。

要求

我已经分别完成了这两个部分,因为用户可以手动输入日期,或者用户可以从日期选择器中选择日期,但要求两者应该一起工作,因为

当用户点击编辑文本日期选择器应该打开,如果用户想手动输入,那么可以手动输入。

注意

请注意,我只能使用编辑文本控件,这意味着客户拒绝使用编辑文本旁边的小日期图标并从那里打开日期选择器的建议,客户只想从一个控件查看这两个操作。

所以请帮我解决这个问题,我该怎么做,因为目前每次点击日期选择器打开时,用户都无法手动输入数据。

【问题讨论】:

  • 在文本字段上添加长按手势以打开日期选择器。单击编辑表单键盘,长按打开日期选择器。
  • 另外,对于上述工作方法,您必须遍历文本字段中的所有手势,并在使用requireGestureRecognizerToFail 检测到长按时要求它们失败。

标签: ios iphone date


【解决方案1】:

如果您仍然没有得到答案,请检查我的以下任务。

我对从下拉列表中选择名称而不是日期选择器有相同的要求。因此,您可以根据自己的要求应用相同的内容。

首先编辑文本

最初您必须采用简单的编辑文本并应用于触摸侦听器,现在您必须检查文本长度是否为 0(零)然后保持日期选择器打开以选择日期。

现在,如果用户从选择器中选择日期,则在编辑文本中设置相同的日期。但是如果日期选择器打开或关闭,当用户开始输入文本时,此时只需检查编辑文本的长度是否大于零然后隐藏选择器,否则显示选择器。

所以这两种方式都可以,比如添加或选择。

在这里,您只需要记住一件事,手动输入的日期必须与您在选择器中设置的格式相同。

希望这会对你有所帮助。

【讨论】:

    【解决方案2】:

    首先,您制作的日期选择器控件位于文本字段下。 然后,默认情况下,隐藏日期选择器。

    例如,

    Outlet UITextField *yourDateField;
    

    还有……

    - (BOOL)textFieldShouldBeginEditing:(UITextField *)textField {
    
        if(yourDateField == textField)
            [datepicker setHidden:NO];
    
        return YES;
    }
    
    - (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
        UITouch *touch = [touches anyObject];
    
        if ([[touch view] class] != [UITextField class]) {
            [datepicker setHidden:YES];
            // hide keyboard
            return;
    
        }
    
    }
    

    当然,当用户从 datepicker 中选择日期时,你必须...

    [yourDateField setText:<< datepicker's selected date  >>]
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-10-14
      • 2023-03-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-09-21
      • 2019-12-18
      • 2013-03-09
      相关资源
      最近更新 更多