Перетаскивание без реализации tableView: objectValueForTableColumn: row: и numberOfRowsInTableView: - PullRequest
1 голос
/ 03 октября 2010

У меня есть NSTableView с одним столбцом, который получает свои данные через NSArrayController, связанный с сущностью Core Data.Подача данных работает отлично, и мне удалось заставить работать методом перетаскивания мышью, реализовав методы

– numberOfRowsInTableView:
– tableView:objectValueForTableColumn:row:

, а также специальное перетаскиваниеметоды

– tableView:acceptDrop:row:dropOperation:
– tableView:writeRowsWithIndexes:toPasteboard:

Но действительно ли мне нужно реализовать первые два метода, даже если просмотр таблицы передает данные через контроллер массива?Я попытался закомментировать мои реализации, но затем в консоли я получаю сообщение об ошибке «Недопустимый источник данных NSTableView».В документации по протоколу NSTableViewDataSource говорится, что методы являются необязательными, если приложение использует привязки Какао, поэтому, очевидно, я делаю что-то не так.

Вопрос: Как мне сделатьtableview использует свою существующую привязку и все еще поддерживает перетаскивание?

Ответы [ 2 ]

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

Вам не нужно реализовывать эти методы. Это кажется довольно шатким, но я заставил их замолчать, восстановив соединение с источником данных в Интерфейсном Разработчике. Я думаю, что, возможно, если вы добавите источник данных после добавления привязок, это отключит предупреждение.

0 голосов
/ 04 октября 2010

Я полагаю, что вам нужно реализовать их, чтобы заставить жалобу замолчать.Я считаю, что при использовании с привязками значения, возвращаемые этими методами источника данных, игнорируются.Так что для -numberOfRowsInTableView: вы можете вернуть ноль;для -tableView: objectValueForTableColumn: row: вы можете вернуть nil.

...