2010-12-05 21 views
7

Estoy tratando de crear una región de arrastrar y soltar que acepte cualquier tipo de archivo y lo cargará a un servidor (utilizando ASIHTTPRequest). Miré el siguiente ejemplo que Apple proporciona:Cacao: Arrastre y suelte cualquier tipo de archivo

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

pero sólo cubre tratar con el arrastrar y soltar las imágenes. ¿Cómo puedo configurar mis operaciones de arrastrar y soltar para tratar con cualquier tipo de archivo?

Gracias.

Respuesta

5

A juzgar por este post, probablemente solo deba tener su vista registrarse para NSFilenamesPboardType en lugar de imagePastBoardTypes para recibir tipos de archivos arbitrarios.

11

clase de relacionado, pero la adición de esto en caso de que sea útil para alguien:

Si simplemente desea manejar cualquier archivo arrastrado en el icono de la aplicación (no tiene que ser una aplicación basada en el documento):

En .h:

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

En .m:

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

En su xxx.pli st, crea una nueva entrada en 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> 
Cuestiones relacionadas