1

我有一个图形模式下的 NSDatePicker,我设置它每秒调用一次此代码以更新 NSDatePicker 对象(datePicker)中的当前时间。

- (void) updateTimerNoOne:(NSTimer *) timer {
    [datePicker setDateValue: [NSDate date]];
    [datePicker setNeedsDisplay: YES];
}

在此处输入图像描述 --> 调用 updateTimerNoOne 时重置 调用该方法时重置所选日期

问题是,当我选择某个日期时,此功能总是会重置,以使所选日期消失。

如何保留选定的日期?

4

1 回答 1

0

每秒调用的方法应该已修改为

[datePicker setDateValue: [NSDate date]];

[datePicker setDateValue: [datePicker dateValue]];

使所选日期保持突出显示。通过组合两个 NSDate 来创建一个新的 NSDate

问题是 dateValue 的小时/分钟/秒没有改变,所以我需要这段代码来更新它们。

unsigned unitFlags = NSYearCalendarUnit | NSMonthCalendarUnit |  NSDayCalendarUnit;
NSDateComponents *comps = [[NSCalendar currentCalendar] components:unitFlags fromDate:[datePicker dateValue]];
NSDate *day3 = [[NSCalendar currentCalendar] dateFromComponents:comps];
unitFlags = NSHourCalendarUnit | NSMinuteCalendarUnit | NSSecondCalendarUnit;
comps = [[NSCalendar currentCalendar] components:unitFlags fromDate:[NSDate date]];
day3 = [[NSCalendar currentCalendar] dateByAddingComponents:comps toDate:day3 options:0];
于 2011-03-14T23:30:13.347 回答