2012-05-02 5 views
1

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

Однако я читаю данные из разных XML-файлов и отображаю их в соответствии с определенными выборами, сделанными на экране.

Я хотел бы получить данные, которые пользователь выбрал непосредственно из NSTableView.

Я знаю, что это противоречит модели MVC и тому подобное, но я был бы признателен за ответ или некоторый намек на то, как это сделать.

+0

Если я не найду решение, я собираюсь создать отдельный класс и иметь экземпляр класса при добавлении нового объекта, а затем использовать этот новый класс при чтении. Это, в конечном счете, будет лучшей моделью. Однако мне все равно хотелось бы узнать, есть ли решение для чтения непосредственно из NSTableView. Благодарю. – Kevin

+0

В представлении таблицы нет внутреннего кеша данных. Источником данных *** является *** этот кеш. В этом весь смысл. Вы должны получить данные из источника данных. Однако не должно быть проблем с этим: '[[tableView dataSource] tableView: tableView objectValueForTableColumn: theColumn row: theRow]'. –

+0

Спасибо, это имеет большой смысл и работает. Не знал, что язык позаботился о том, чтобы отслеживать источник данных, даже если формальный (один) не был определен. Если вы хотите разместить свой ответ в качестве ответа, я могу отметить его как таковой :) Спасибо большое! – Kevin

ответ

1

В представлении таблицы нет внутреннего кеша данных. Источником данных является кеш. В этом весь смысл. Вы должны получить данные из источника данных. Однако не должно быть проблем с этим: [[tableView dataSource] tableView:tableView objectValueForTableColumn:theColumn row:theRow].

Однако, что вы имеете в виду, когда говорите «Не знали, что [он] позаботился о том, чтобы отслеживать источник данных, даже если формальный (один) не был определен»? Вы имеете в виду, что используете привязки вместо настройки источника данных? В этом случае я бы не использовал эту технику. Существование источника данных в этом случае будет деталью реализации. Для случая привязок вы должны напрямую обращаться к контроллеру массива.

+0

Нет, я не использую привязки. То, что я хотел сказать, состояло в том, что я не создавал «официальный» источник данных, так сказать, как в данных, которые были взяты из файла XML и помещены непосредственно в представление таблицы. Теперь, когда я вижу, что XML-файл служит источником данных, это было просто некоторая путаница с моей стороны. Спасибо за Ваш ответ. – Kevin

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