Отображение даты из двух строк в табличном представлении, соответственно в двух текстовых полях, через связывание - PullRequest
0 голосов
/ 21 ноября 2010

У меня есть класс, названный как транзакция, в котором один атрибут - транзакция транзакции типа NSDate.

Я использую NSArrayController для отображения списка транзакций в табличном представлении.требование -

Я хочу показать дату в первой строке в текстовом поле, помеченном как «От», и дату в последней строке в текстовом поле, помеченном как «До».

Мои вопросы-

Могу ли я добиться этого через связывание в IB?Если да, то как?

Спасибо,

Miraaj

Ответы [ 2 ]

1 голос
/ 22 ноября 2010

Да, вы можете сделать это (или что-то в этом роде), см. Операторы @min и @max массива .

Вот как сделать очень простую версию этого:

  1. Open Interface Builder - создать новое приложение
  2. Добавьте NSArrayController, установите его для автоматической подготовки контента.
  3. Добавить таблицу, обозначить два столбца "name" и "age"
  4. Добавьте кнопку (помеченную "+") и две метки (измените имя на maxval, minval)
  5. Подключите привязки NSArrayController следующим образом:

alt text

Вот приложение запущено (просто в режиме симулятора конструктора интерфейса). Чтобы использовать его, нажмите +, затем нажмите на верхний ряд таблицы и введите имя в первом столбце, а возраст во втором. Затем повторите еще несколько человек.

alt text

Все это выглядит немного загадочно, но этого достаточно. Я добавил метки «Максимальный возраст» и «Минимальный возраст» для ясности в моей версии.

0 голосов
/ 22 ноября 2010

К сожалению, это не то, что Bindings особенно хорош в. Вы могли бы достичь этого, но это было бы очень хакерским.

Протокол NSTableViewDataSource по-прежнему является совершенно уместным и допустимым способом предоставления данных в таблицу. В подобных случаях (когда вы не просто представляете в таблицу простой набор однородных данных), протокол источника данных является единственным разумным способом решения проблемы. Таким образом, вы полностью контролируете отображение таблицы.

Единственная «сложная» часть заключается в том, что если вы используете Core Data, ваш класс источника данных должен будет отслеживать контекст управляемых объектов на предмет изменений и перезагрузить данные (либо -reloadData для обновления всей таблицы, либо используйте reloadDataForRowIndexes: columnIndexes: чтобы выбрать строки, которые вы хотите обновить).

...