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]];

選択した日付を強調表示したままにします。2 つの 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 に答える