Добавление данных в скроллвью / таблицу - PullRequest
1 голос
/ 12 августа 2011

У меня есть NSCrollView, который содержит NSTableView. Имеет 3 столбца и 4 строки. У меня есть 4 строки NSS с содержимым, которое мне нужно скопировать в представление прокрутки.

Используя Xcode 4, я попытался соединить таблицу или NSTextFieldCell, а затем добавить текст через

[_Cell1 setStringValue:MyString]; 

Но ничего не происходит. Не обновляется.

Есть ли способ сделать это? Спасибо.

EDIT:

Я нашел следующий ответ на аналогичный вопрос. Я все еще в замешательстве, но после прочтения примера Apple о привязках я могу только сказать, что этот не имеет какой-либо смысл, так много кода для достижения чего-то такого простого. В этом проблема всего, что является объектом, и ООП в целом.

Какие-нибудь простые образцы там? Я даже не знаю, как начать устанавливать это или подключать gazillion вещей, которые нужно подключить, чтобы начать работать с этим

Ответы [ 3 ]

1 голос
/ 12 августа 2011

Вы должны использовать NSTableViewDelegate.Это набор методов, которые NSTableView вызывает для получения данных, которые он должен отображать.Вам просто нужно объявить объект делегата таблицы.

Протокол делегирования

Учебное пособие по NSTableView

0 голосов
/ 20 августа 2011

К сожалению, вы не можете «добавить» или «установить» содержимое табличного представления. Как и большинство объектов представления, представление таблицы не хранит содержимое; это зависит от контроллера, чтобы предоставить контент, когда ему это нужно.

Есть два варианта:

  • Источник данных: самый простой, самый простой для понимания
  • Связывание с контроллером массива: труднее для понимания, но меньше работы для реализации

Лучший ресурс Apple по теме: Заполнение табличных представлений на основе ячеек из Руководства по программированию табличного представления . Если вы боретесь, я предлагаю вам начать с опции источника данных. Это будет всего несколько строк кода, и вы сможете адаптировать простые примеры из этого документа.

Чтобы заполнить таблицу, вам нужно реализовать эти два метода:

– numberOfRowsInTableView:
– tableView:objectValueForTableColumn:row:

И чтобы изменить данные, вам нужно реализовать еще одну:

- tableView:setObjectValue:forTableColumn:row:

Вам потребуется установить контроллер в качестве источника данных для табличного представления в конструкторе интерфейсов. И правильный протокол для этого NSTableViewDataSource, а не NSTableViewDelegate.

0 голосов
/ 12 августа 2011

Вы можете использовать NSArrayController и привязать привязки значений столбцов таблицы к упорядоченным объектам контроллера массива. Затем добавьте значения, которые вы хотите отобразить, в контроллер массива.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...