0

我最近一直在为最大/最小日期苦苦挣扎,老实说,我不知道我在这里错过了什么。我搜索了很多,似乎没有人抱怨它。(我不是在谈论设置最大/最小日期,因为这些只能使无效日期显示为灰色)

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

    [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

相反,它具有完全相同的行为。

4

1 回答 1

1

所以为了“重置”UIDatePicker你可以使用reloadInputViews方法(因为UIDatePickerUIResponder

编辑:拼写

于 2013-09-03T21:18:00.463 回答