Настраиваемое форматирование даты в NSTableView - PullRequest
1 голос
/ 10 февраля 2012

Мое приложение жонглирует историческими событиями.Даты некоторых событий могут быть тысячелетиями до нашей эры.Очевидно, что даты таких событий не очень точны и заканчиваются в терминах типа «Около 20 000 г. до н.э.» или «До 50 000 г. до н. Э.»пользовательский формат даты при вводе события.Этот формат затем сохраняется - для более поздних целей отображения - с датой события в качестве экземпляра NSString.Это все работает довольно хорошо для представлений, где я показываю одно событие для каждого представления.

Однако, когда я хочу отобразить несколько событий в NSTableView, я застреваю.Я добавил форматер даты в ячейку таблицы в моем NSTableView, но, похоже, нет никакого способа связать мой сохраненный формат даты с форматером даты в ячейке.

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

1 Ответ

2 голосов
/ 10 февраля 2012

У меня есть аналогичное требование, и я еще не нашел отличного решения, но я также не тратил много времени на попытки.

Что приходит на ум, поскольку оно должно варьироваться отпострочно, для того, чтобы сделать средство форматирования свойством объекта модели, затем в столбце таблицы есть «мета форматер», который опрашивает objectValue и возвращает результат применения средства форматирования модели к значению данных модели.(Если это вообще имеет какой-то смысл ...)

Редактировать: псевдокод

В своем пользовательском подклассе NSFormatter ("метаформатор") вы бы реализовали что-то вроде:

- (NSString *)stringForObjectValue:(id)object {
    return [[object customFormatter] stringForObjectValue:[object date]];
}

В сущности, несвязанный метаформатор действует как прокси для представляемого внутренне для каждого пользовательского форматера.Заставить его работать с Core Data, ну, вы сами там.: -)

...