2010-05-17 3 views
0

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

+4

Для размещения исходного кода используйте Dropbox, Google Docs или MobileMe iDisk или услугу хостинга DVCS, такую ​​как Bitbucket или GitHub. «Подождите, пожалуйста, минут минут, чтобы загрузить» = Я, например, не буду беспокоиться. –

+0

Полагаю, вы хотите, чтобы пользователь мог отбросить текстовый файл непосредственно в виде контура, а не на вашей док-плитке? Какой объект, в частности, является владельцем вашего файла? Является ли это источником данных в виде схемы? Это делегат представления схемы? Является ли это объектом, который передает NSTreeController через Bindings? –

+0

Возможный дубликат [Cocoa NSOutlineView и Drag-and-Drop] (http://stackoverflow.com/questions/2870803/coco-nsoutlineview-and-drag-and-drop) –

ответ

3

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

Дополнительную информацию о том, что вам нужно реализовать в источнике данных, см. В the NSOutlineViewDataSource protocol.

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

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