【问题标题】:iOS Datepicker: How to LOCK invalid dates?iOS Datepicker:如何锁定无效日期?
【发布时间】:2013-09-07 00:49:53
【问题描述】:

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

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

    [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

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

【问题讨论】:

  • Tyr 在设置日期后使用[myDatePicker reloadInputViews];
  • 确实做到了!我之前犯了一个错误!非常感谢!!
  • 我添加了我的评论作为答案。如果您愿意,可以将其标记为已接受的答案;)

标签: ios locking uidatepicker minimum


【解决方案1】:

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

编辑:拼写

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-04-29
    • 2020-06-24
    • 1970-01-01
    • 1970-01-01
    • 2018-05-03
    • 1970-01-01
    • 1970-01-01
    • 2021-12-06
    相关资源
    最近更新 更多