NSTableView и перетаскивание из Finder

Я пытаюсь реализовать перетаскивание из Finder в NSTableView моего приложения. В установке используется NSTableView, контроллер массива, который действует как источник данных, используя привязки Cocoa к хранилищу основных данных.

Я сделал следующее, в основном следуя различным сообщениям в блогах, которые я нашел на SO и других сайтах.:

В awakeFromNibмоего контроллера представления я вызываю:

[[self sourcesTableView] registerForDraggedTypes:[NSArray arrayWithObjects: NSPasteboardTypePNG, nil]];

я создал подкласс NSArrayController и добавил следующие методы в свой подкласс (] Причина создания подклассов заключается в том, что контроллер массива должен быть проинформирован об отбрасывании, поскольку он действует как источник данных табличного представления.):

- (BOOL) tableView: (NSTableView *) aTableView acceptDrop: (id < NSDraggingInfo >) info row: (NSInteger) row dropOperation: (NSTableViewDropOperation)operation

Моя реализация для вышеизложенного в настоящее время только записывает в журнал, а затем возвращает логическое значение YES.

- (NSDragOperation) tableView: (NSTableView *) aTableView validateDrop: (id < NSDraggingInfo >) info proposedRow: (NSInteger) row proposedDropOperation: (NSTableViewDropOperation) operation

В IB у меня есть контроллер массива, указывающий на мой собственный подкласс NSArrayController.

Результат :ничего. Когда я перетаскиваю PNG с рабочего стола в табличное представление, ничего не происходит, и файл возвращается к своему исходному состоянию. Должно быть, я делаю что-то не так, но не понимаю, что. Где я ошибаюсь?

11
задан Roger 25 April 2012 в 09:45
поделиться