Какао: перетащите любой тип файла - PullRequest
8 голосов
/ 05 декабря 2010

Я пытаюсь создать область перетаскивания, которая принимает любой тип файла и загружает его на сервер (используя ASIHTTPRequest).Я посмотрел на следующий пример, который предоставляет Apple:

http://developer.apple.com/library/mac/#samplecode/CocoaDragAndDrop/Introduction/Intro.html

, но он касается только перетаскивания изображений.Как настроить операции перетаскивания для работы с файлами любого типа?

Спасибо.

Ответы [ 2 ]

12 голосов
/ 27 сентября 2011

Вид связанного, но добавьте его на тот случай, если это кому-нибудь пригодится:

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

In .h:

- (void)application:(NSApplication *)sender openFiles:(NSArray *) fileNames;

In .m:

- (void)application:(NSApplication *)sender openFiles:(NSArray *) fileNames {
    NSLog(@"Files dragged on: %@", fileNames);
}

В своем xxx.plist создайте новую запись в CFBundleDocumentTypes:

<key>CFBundleDocumentTypes</key>
<array>
    <dict>
        <key>CFBundleTypeExtensions</key>
        <array>
            <string>*</string>
        </array>
        <key>CFBundleTypeName</key>
        <string>NSFilenamesPboardType</string>
        <key>CFBundleTypeRole</key>
        <string>None</string>
    </dict>
</array>
6 голосов
/ 05 декабря 2010

Судя по этому сообщению , вам, вероятно, просто нужно зарегистрировать просмотр для NSFilenamesPboardType вместо imagePastBoardTypes для получения файлов произвольного типа.

...