¿Cómo puedo soltar un archivo (o seleccionar para abrirlo en Finder) del tipo especificado en Info.plist en el icono de mi dock y luego llamar a un método con la ruta completa del archivo ?Colocando archivos en el icono Dock en Cocoa
Respuesta
Si ha configurado su gama de Info.plist CFBundleDocumentTypes adecuadamente (ya sea 'LSItemContentTypes' o 'CFBundleTypeExtensions'), a continuación, sólo tiene que configurar un delegado NSApplication y poner en práctica el método delegado, application:openFile:.
Si espera que se eliminen varios archivos a la vez, implemente application:openFiles:.
Para archivos prometidos (NSFilesPromisePboardType
/kPasteboardTypeFileURLPromise
) ver Dropping promised files on to application icon in Dock.
He configurado mi matriz CFBundleDocumentTypes correctamente, y escribí el método, pero el icono de dock simplemente no aceptará mi archivo. –
Tristian Seifert: Una posible causa de ese problema es que usted especificó una UTI en su plist, pero fue la incorrecta: http: // boredzo.org/blog/archives/2007-07-23/how-to-make-your-apps-dock-tile-highlight También debe asegurarse de importar cualquier UTI que mencione en la lista: http://developer.apple. com/mac/library/documentation/FileManagement/Conceptual/understanding_utis/ –
Después de leer estos dos documentos, todavía no entiendo cómo agregar UTI a mi PList existente. Aquí hay una pequeña sección de mi Info.plist: \t \t
Si realmente está haciendo una aplicación basada en documentos, al configurarla para darle la ruta tendrá que hacer mucho más trabajo de lo que necesita. Simplemente use la plantilla de la aplicación basada en documentos. El controlador de documentos creará una instancia de la clase correcta para usted; solo necesitas escribir esa clase.
Una aplicación que cree de esta manera se encargará de las caídas de archivos (abriéndolos como documentos) de forma gratuita.
No es una aplicación basada en documentos, es un lector de correo electrónico, y me gustaría poder arrastrar borradores, buzones, etc. a mi icono de dock. –
Seleccione su aplicación en el grupo objetivo del panel lateral y use get info. Luego, en la nueva ventana, seleccione la pestaña de propiedades para agregar un nuevo tipo de documento. Llámalo "Carpeta" por conveniencia y los Tipos de SO necesitan ser "doblados"; el tipo de tienda y el rol que puede dejar como está.
Gracias Me ayudó a hacer que mi aplicación funcione. – AmitSri
En los sistemas actuales puede usar un UTI en lugar de los tipos de cuatro caracteres anteriores (como fold
anterior). En el editor de tipo de documento de Xcode, hacer un nuevo tipo con:
- Nombre: Carpeta
- Identificador: public.folder
public.folder
es un subtipo de public.directory
. public.folder
coincide con directorios que aparecen como tales para el usuario, es decir, no paquetes como .app
envoltorios.
Aquí es una solución actualizada para Xcode 5. En AppDelegate.m
-(BOOL)application:(NSApplication *)sender openFile:(NSString *)filename
{
NSLog(@"%@", filename);
return YES;
}
Y en Xcode Tipos de configuración del documento marco del Proyecto> Objetivos> Información:
Compruebe la configuración en Info.plist Si tiene una matriz vacía de "Tipo de contenido del documento UTI" que debe rellenarse correctamente o eliminarse.
Su Info.plist debería ser algo como esto:
¡excelente respuesta! muy útil. gracias – gypsyDev
Tenga en cuenta que esto hará que su aplicación acepte * cualquier * archivo, no solo una extensión dada, porque CFBundleTypeExtensions se establece en '*'. Si solo admite ciertas extensiones de archivo, especifíquelas en su lugar. De lo contrario, el sistema operativo ofrecerá abrir archivos aleatorios con su aplicación solo para que su aplicación falle. – uliwitness
- 1. Arrastrar y soltar en el icono de Dock en Cocoa: destruye asociaciones de archivos
- 2. ¿Cómo dibujo una insignia en el icono de mi Dock usando Cocoa?
- 3. Cambiando el icono de Eclipse Dock
- 4. Cómo ocultar el icono de Dock
- 5. Ocultar el icono de Python rocket dock al usar ScriptingBridge
- 6. ¿Cómo crear un menú cuando un usuario hace clic derecho en el icono de dock de la aplicación Cocoa en Mac?
- 7. ¿Cómo puedo hacer una aplicación C# con solo un icono de bandeja en MonoMac (sin icono de dock)?
- 8. Crear archivos Excel (.xlsx) en Cocoa
- 9. Hacer que las descargas se dupliquen mediante el icono del Dock
- 10. hacer un navegador de archivos en Cocoa
- 11. Colocando datos directamente en Blobstore de AppEngine
- 12. archivos de icono para especificar en el plist
- 13. ¿Cómo se abre la ventana de la aplicación cuando se hace clic en el icono del dock?
- 14. Acceso al icono del dock Opciones de menú del botón derecho con AppleScript
- 15. ¿Mostrar íconos en los menús contextuales del dock en OS X?
- 16. Obtener el tipo de archivo en Cocoa
- 17. Colocando dos divs en el mismo nivel horizontal
- 18. Colocando un UITextField en el centro de la vista
- 19. Colocando caracteres Unicode en el contenido CSS valor
- 20. Fondo en el icono WP7
- 21. icono en el título TitledBorder
- 22. ¿Cómo podemos rebotar el ícono del dock en la Mac?
- 23. ¿Cómo volver a mostrar la ventana principal después de cerrado en Cocoa?
- 24. ¿Cómo cambiar el icono del cursor en Java?
- 25. Qt Designer & Dock Widgets
- 26. Cómo ocultar el ícono del programa Java SWT en el Dock cuando la aplicación está en la bandeja
- 27. .NET Dock Panel?
- 28. Aceptación de archivos arrastrados en una aplicación Cocoa
- 29. ¿Cómo permitir la carga de archivos con WebView en Cocoa?
- 30. ¿Cómo reacciono a una aplicación OS X cuando un archivo, imagen, etc. cae en su icono de base?
No entiendo la pregunta. ¿Está el usuario arrastrando un archivo al icono de su Dock, o quiere abrir el archivo mediante programación? –
Me refiero a la ruta al archivo que se colocó en el icono del dock. –