Как я обрабатываю несколько, файл перетаскивает/отбрасывает от Средства поиска в Mac OS X 10.5?

Я должен добраться, URL всех файлов перетащили/заскочили мое приложение от Средства поиска.

У меня есть приложение Какао, работающее 10.6, который делает это при помощи новых 10.6 API NSPasteboard, которые обрабатывают несколько объектов на области монтажа. Я пытаюсь бэкпортировать это приложение к 10,5. Как я обрабатываю это на 10,5?

Если я делаю что-то как ниже, я только получаю первый URL:

    NSArray *pasteTypes = [NSArray arrayWithObjects: NSURLPboardType, nil];
    NSString *bestType = [pboard availableTypeFromArray:pasteTypes]; 
    if (bestType != nil) {
        NSURL *url = [NSURL URLFromPasteboard:pboard];
    }        
9
задан robottobor 4 January 2010 в 08:14
поделиться

3 ответа

Темы IKImageKit для программирования очерчивают способ сделать это так (перефразируя):

   NSData *data = [pasteboard dataForType:NSFilenamesPboardType];
   NSArray *filenames = [NSPropertyListSerialization
        propertyListFromData:data
            mutabilityOption:kCFPropertyListImmutable
                      format:nil
            errorDescription:&errorDescription];

Смотрите здесь: Руководство по программированию комплектов изображений: Поддержка перетаскивания

6
ответ дан 4 December 2019 в 12:18
поделиться

Получить несколько имен файлов легко: (При получении нескольких URL-адресов не с 10,5)

  1. Зарегистрируйте свой вид для NSFilenamesPboardType
  2. В performDragOperation: сделайте следующее, чтобы получить массив путей к файлам:

NSPasteboard* pboard = [sender draggingPasteboard];
NSArray* filenames = [pboard propertyListForType:NSFilenamesPboardType];
10
ответ дан 4 December 2019 в 12:18
поделиться

Как обрабатывать [несколько объектов на карте] на 10.5?

Попробуйте Pasteboard Manager.

Коварная часть заключается в том, что вы обрабатываете падение, что означает, что вы получаете NSPasteboard, уже созданный для вас, и нет никакого способа конвертировать между объектами NSPasteboard и PasteboardRef s. Вы должны запросить у NSPasteboard его имя, затем передать это же имя в PasteboardCreate, и это может не сработать.

.
0
ответ дан 4 December 2019 в 12:18
поделиться
Другие вопросы по тегам:

Похожие вопросы: