Как я могу заставить NSDateFormatter принимать ввод в одном формате и отображать его в другом? - PullRequest
0 голосов
/ 24 сентября 2010

У меня есть табличное представление, которое отображает даты, используя NSDateFormatter для их форматирования с использованием стиля полной даты (сегодня будет форматироваться как «Пятница, 24 сентября 2010 года» или по-немецки «Freitag, 24. Сентябрь 2010»).,Но при редактировании даты форматировщик заставляет пользователя вводить дату в том же формате.Как я могу сделать так, чтобы форматировщик принимал даты в разных форматах при вводе?В идеале форматировщик должен использовать некоторую эвристику для автоматического определения введенного формата.

Я попытался установить свойство lenient в коде, но это совсем не меняет наблюдаемое поведение.

Лотыпрограмм автоматически определяет введенный формат даты, поэтому это должно быть возможно.Или они все используют свою собственную реализацию?

1 Ответ

0 голосов
/ 24 сентября 2010

Может быть, этот раздел Руководство по форматированию данных может помочь:

Режим поведения v10.4 позволяет больше конфигурируемость и лучше локализация; ты должен использовать это для любые новые проекты и в идеале обновить любой существующий код, который использует v10.0 поведение, чтобы использовать поведение v10.4.

Для обратной двоичной совместимости, поведение по умолчанию для NSDateFormatter на Mac OS X версии 10.4 - это поведение версии 10.0. Однако в Mac OS X версии 10.5 и более поздних по умолчанию используется поведение версии 10.4. Вы можете установить поведение по умолчанию для всех экземпляры NSDateFormatter для v10.4 поведение, вызывая класс Метод setDefaultFormatterBehavior: с аргументом NSDateFormatterBehavior10_4. Вы можете также установите поведение для любого экземпляра индивидуально, ссылаясь setFormatterBehavior:.

...