2010-11-21 3 views
0

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

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

Мое требование

IS-

Я хочу, чтобы показать дату в первой строке в текстовом поле меченого как «С» и дату в последней строке в текстовом поле, помечены как «К».

Мои вопросы

IS-

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

Спасибо,

Miraaj

ответ

1

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

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

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

alt text

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

alt text

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

0

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

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

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

Смежные вопросы