NSOutlineView с перетаскиванием - PullRequest
0 голосов
/ 17 мая 2010

Я прочитал другой пост здесь на Outlineviews и DND, но я не могу заставить мою программу работать. Внизу этого поста есть ссылка на zip моего проекта. Это очень простой, только обзор и кнопка. Я хочу, чтобы он получал на него текстовые файлы, но что-то не так с моим кодом или соединениями. Я попытался следовать примеру кода Apple их NSOutline Drag and Drop, но я что-то упустил. Одно отличие - моя программа основана на документах, а их пример - нет. Я установил владельца файла для получения действий делегата, поскольку именно там находится мой код для обработки перетаскивания, а также действие кнопки. Вероятно, это простая ошибка, так что, может, кто-нибудь посмотрит на нее и скажет, что я делаю не так?

1 Ответ

3 голосов
/ 18 мая 2010

Вы реализовали табличное представление методов перетаскивания источника данных, а не методы перетаскивания источника данных представления схемы. Контурное представление является своего рода табличным представлением, но оно использует исключительно протокол источника данных схематического представления; протокол источника данных табличного представления - только для источников данных табличного представления, а не источников данных представления схемы.

См. NSOutlineViewDataSource протокол для более подробной информации о том, что именно вам нужно реализовать в вашем источнике данных.

На этом примечании: вам необходимо реализовать методы в вашем источнике данных, который в настоящее время не является вашим документом. Я не знаю, почему ты так сделал; Как правило, документ (в его роли главным образом контроллера) является владельцем модели, поэтому он должен быть источником данных для представления - источником данных.

Я предлагаю объединить класс OutlineDataSource с классом MyDocument и изменить методы перетаскивания табличного представления на их аналоги в виде структуры.

...