iOS Datepicker:如何锁定无效日期?

时间:2013-09-03 17:28:13

标签: ios locking uidatepicker minimum

我最近一直在努力争取最大/最短的约会,老实说,我不知道我在这里缺少什么。我搜索了很多,似乎没有人抱怨它。 (我不是在谈论设置最大/最小日期,因为这些只会使无效日期显示为灰色)

这是我到目前为止所做的:

    [myDatePicker addTarget:self action:@selector(disableDate) forControlEvents:UIControlEventValueChanged];

然后,在disableDate上,我有类似的东西:

if ([myDatePicker.date compare:[NSDate date]] == NSOrderedDescending) {
        MyDatePicker.date = [NSDate date];
    }

(或升序,取决于我要禁用的日期)

事情是:它工作正常,但只有一次。换句话说:一旦我打开视图并尝试选择,例如2007年,它就会回滚到2013年。很棒。但就在那之后,如果我尝试滚动到任何无效日期(包括2007年),它将不再向后滚动,直到我重新打开我的视图。 我觉得我在这里缺少一些简单的东西,但我不知道是什么。

提前多多感谢!

PS:就是说,我把它放在disableDate

    NSLog(@"Value changed");

只是为了确保每次滚动datepicker时它都在调用方法,是的,它正在工作;

PS2:我尝试了相同但使用

- (IBAction)datePickerValueChanged:(id) sender
相反,它具有完全相同的行为。

1 个答案:

答案 0 :(得分:1)

因此,为了“重置”UIDatePicker,您可以使用reloadInputViews方法(因为UIDatePickerUIResponder的子类

编辑:拼写