Мне интересно, как можно реализовать представление структуры, как тот, который Xcode 3 использует для конфигурации сборки:
альтернативный текст http://img812.imageshack.us/img812/9467/xcodeoutlineview.png
При использовании NSOutlineView / NSTableView спривязки и NSTreeController / NSArrayController, столбцы представления получают привязки, присвоенные , а не отдельным ячейкам, по очевидным причинам.Если каждая строка в столбце использует одну и ту же ячейку, то это кусок пирога.Однако, если каждая строка (потенциально) использует свой собственный тип ячейки (и с этим, потенциально, своим собственным набором привязок), то все становится просто прикольным.что ячейке текстового поля нужна только одна привязка для «значения».В то время как ячейке всплывающей кнопки требуется по крайней мере одна ячейка для " content ", одна для " contentValues " и последняя, но не менее важная привязка для " selectedIndex / selectedObject / selectedValue".И ячейка флажка нуждается в привязке для " value " и (вероятно) в привязке для " title ".
Как бы это сделать с чистым (и небольшим) насколько это возможно?
( или как можно спросить: Как бы Apple это сделала ?)
…
Вот чтоДо сих пор я пробовал себя:
Я предоставляю соответствующие (скопированные) ячейки через [outlineView: dataCellForTableColumn: item:] и связываю их с отдельными моделями данных (из [item presentObject]).Я знаю точный объем данных (<500 строк), отображаемых в виде структуры, поэтому наличие одной ячейки на строку не должно быть слишком большой проблемой с памятью, не так ли?Я получил данные <strong>для правильного отображения через привязки (да!), Однако я не могу изменить ни одно из их значений.O_o Очевидно, что изменение значения просто не доходит до модели данных.Есть ли что-то большее, чем простая [checkboxCell bind: @ "value" toObject: rowModel withKeyPath: @ "value" options: nil] ?(поскольку этого кажется достаточным для получения значений, но не для установки их соответственно.)
Я не смог найти никакой информации по этому вопросутема.Много информации и подсказок для использования пользовательских ячеек на столбец, но ни одного для использования их на основе «на строку».: (
Это было бы неплохо для урока по какао, не так ли?;)