2010-08-04 1 views
1

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

код Релевент:

- (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

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

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

+0

ОК. Тогда я неправильно понял. Должен ли я использовать 'NSURLPboardType' или' NSFileNamesPboardType' в 10.6? Я не видел компилятивного 10.6 api. Просто метод 'writefiles:', который я понимал как перетаскивание, в отличие от того, чтобы уйти. –

 Смежные вопросы

  • Нет связанных вопросов^_^