UIDatePicker против UIApplicationSignificantTimeChangeNotification - PullRequest
2 голосов
/ 30 августа 2009

Я обрабатываю UIApplicationSignificantTimeChangeNotification в моем приложении и на всех других экранах в приложении изящно обновляются, когда наступает полночь. У меня проблема с UIDatePicker . UIPickerView имеет refreshAllComponents метод, который я использую на другом экране, чтобы обновлять изменения в полночь. Я хотел бы иметь то же самое для UIDatePicker , но, к сожалению, я не смог найти способ обновить его, и Сегодня остается Сегодня , хотя это уже Вчера . Есть выход?

Ответы [ 3 ]

2 голосов
/ 03 мая 2011

Почему бы не заменить UIDatePicker новым экземпляром?

UIDatePicker *oldPicker = self.myDatePicker;
UIDatePicker *newPicker = [[UIDatePicker alloc] initWithFrame:oldPicker.frame];
[newPicker setDate:oldPicker.date animated:NO];
[[oldPicker superview] addSubview:newPicker];
[oldPicker removeFromSuperview];
self.myDatePicker = newPicker;
[newPicker release];

Приведенный выше код заменяет oldPicker на newPicker, копируя настройки, чтобы никто не заметил изменения Если у вас есть другие ссылки на представление выбора, вам также необходимо обновить их.

1 голос
/ 30 августа 2009

Вы можете обновить UIDatePicker, используя его метод

- (void)setDate:(NSDate *)date animated:(BOOL)animated

Просто передайте в качестве аргумента даты [NSDate date] и YES в качестве анимированного аргумента. Это должно работать, так как после полуночи [дата NSDate] должна давать правильную текущую дату.

0 голосов
/ 11 июля 2012

Это довольно старая тема, но, как я обнаружил, с помощью Google, другие люди тоже. Что сработало для меня:

[datePicker becomeFirstResponder];
[datePicker reloadInputViews]; 
...