Получите NSTableView для регистрации отбрасывания из источника PNG - PullRequest
1 голос
/ 04 августа 2010

Пытаюсь заставить это работать, и не уверен, что мне не хватает. Идея состоит в том, чтобы поместить изображения на NSTableView, чтобы я мог взять их пути и сделать некоторые манипуляции для них. Я могу заставить дроп работать на NSPastebouardTypeString, но не могу на всю жизнь заставить его зарегистрировать перетаскивание PNG из Finder в представление таблицы Чего мне не хватает?

Код срабатывания:

- (void)awakeFromNib {
    [imageTableView registerForDraggedTypes:[NSArray arrayWithObject:NSPasteboardTypePNG]];
}

- (NSDragOperation)tableView:(NSTableView *)aTableView validateDrop:(id < NSDraggingInfo >)info proposedRow:(NSInteger)row proposedDropOperation:(NSTableViewDropOperation)operation {
    NSLog(@"Validate Drop");
    return NSDragOperationEvery;
}

- (BOOL)tableView:(NSTableView *)aTableView acceptDrop:(id < NSDraggingInfo >)info row:(NSInteger)row dropOperation:(NSTableViewDropOperation)operation {
    NSLog(@"Accept Drop");
    return YES;
}

1 Ответ

1 голос
/ 05 августа 2010

PNG файлы , перетаскиваемые из Finder, не данные PNG. Это файлы , которые имеют свой тип картона. (Будучи файлами, вы не обязательно хотите, чтобы они полностью загружались в память в случае сброса, не так ли?: D)

10.4 дал вам NSArray из NSStrings как NSFilenamesPboardType. 10.5 и более поздние версии также предоставляют вам массив файлов: URL-адреса как NSURLPboardType. Поскольку вы используете более старый API, этот документ по 10.5-API применяет (10.6 полностью переработал API-интерфейс для монтажа картона, чтобы сделать его более похожим на iOS).

...