在IOS中手动设置日期值并使用日期选择器

时间:2016-12-09 05:41:16

标签: ios iphone date

我已经尽可能多地搜索了,我只得到了一部分要求的解决方案而不是整个,所以请仔细阅读我的方案,然后继续进行。

方案

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

要求

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

当用户点击编辑文本日期选择器时,如果用户想要手动输入,则可以手动输入。

注意

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

所以请帮我解决这个问题,如今每次打开日期选择器并且用户无法手动输入数据时,请点击此处。

2 个答案:

答案 0 :(得分:2)

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

我同样要求从下拉列表中选择名称而不是日期选择器。因此,您可以根据自己的要求进行申请。

首先采取编辑文字

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

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

因此,这可以通过添加或选择来实现。

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

希望这会对你有所帮助。

答案 1 :(得分:0)

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

例如,

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  >>]