NSApplication le permite configurar un delegado para su aplicación. Si el usuario arrastra un archivo en el icono de la base, NSApplication llamará al método
- (BOOL)application:(NSApplication *)theApplication openFile:(NSString *)filename
de su objeto delegado, en caso de que implementa dicho método. En caso de que el contenido no es realmente un archivo (por ejemplo, si el usuario simplemente selecciona texto en una aplicación y lo arrastra en su icono de la base), el método delegado
- (BOOL)applicationOpenUntitledFile:(NSApplication *)theApplication
se llama.
Ver NSApplication class reference
Básicamente se puede simplemente crear cualquier objeto de cualquier tipo (por ejemplo, un sencillo que simplemente hereda de NSObject), definen los dos métodos de más arriba dentro del objeto y luego en cualquier lugar de su puesta en marcha código de la aplicación que hace
whatever = [[YourObject alloc] init];
[[NSApplication sharedApplication] setDelegate:whatever];
Y eso es todo. Tan pronto como un archivo o algún otro contenido se coloca en el icono del Dock, se llama al método apropiado y debe manejar esa solicitud. Por cierto, se invocan los mismos métodos si su aplicación se asocia con un tipo de archivo (por ejemplo, .myFileType) y el usuario hace doble clic en un archivo con esa extensión en el Finder.
Lo que realmente sucede entre bastidores es que Launch Services envía su aplicación a un evento de Apple de "documentos abiertos" ('odoc'). NSApplication registra de forma predeterminada un identificador para este evento y reenvía la solicitud llamando al método delegado apropiado. También puedes escuchar directamente este evento de Apple, supongo, pero ¿por qué lo harías? Lidiar directamente con Apple Events es incómodo. Cuando su aplicación no es Cocoa, sino Carbon (plain-C), es posible que deba procesar directamente el evento de Apple (no estoy familiarizado con Carbon), pero en Cocoa Apple ya atrapa los eventos de Apple más importantes para usted y los convierte. en llamadas de delegado o notificaciones que su aplicación puede escuchar.
No creo que pueda usar Cocoa y C#.Solo sé de enlaces de Cocoa de Ruby, Python y Objective-C (con Objective-C siendo el mejor compatible, según tengo entendido). Si bien puedes escribir aplicaciones OS X utilizando C# con Mono, no creo que puedas usar Cocoa de C#. – Andy
Buscar Cocoa # Andy. –