我最近一直在为最大/最小日期苦苦挣扎,老实说,我不知道我在这里错过了什么。我搜索了很多,似乎没有人抱怨它。(我不是在谈论设置最大/最小日期,因为这些只能使无效日期显示为灰色)
这是我到目前为止所做的:
[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");
只是为了确保每次滚动日期选择器时它都会调用该方法,是的,它正在工作;
PS2:我尝试过相同但使用
- (IBAction)datePickerValueChanged:(id) sender
相反,它具有完全相同的行为。