NSApplication vous permet de définir un délégué pour votre application. Si l'utilisateur fait glisser un fichier sur l'icône de votre station d'accueil, NSApplication appellera la méthode
- (BOOL)application:(NSApplication *)theApplication openFile:(NSString *)filename
de votre objet délégué, dans le cas où il met en oeuvre une telle méthode. Dans le cas où le contenu est pas vraiment un fichier (par exemple si l'utilisateur sélectionne simplement le texte dans une application et il fait glisser sur l'icône de votre dock), la méthode déléguée
- (BOOL)applicationOpenUntitledFile:(NSApplication *)theApplication
est appelé.
Voir NSApplication class reference
Fondamentalement, vous pouvez simplement créer un objet quelconque (par exemple un simple qui hérite simplement de NSObject), définir les deux méthodes ci-dessus dans l'objet et ne importe où dans votre code de démarrage de l'application que vous faites
whatever = [[YourObject alloc] init];
[[NSApplication sharedApplication] setDelegate:whatever];
Et c'est tout. Dès qu'un fichier ou un autre contenu est déposé sur l'icône du Dock, la méthode appropriée est appelée et doit gérer cette requête. BTW les mêmes méthodes sont appelées si votre application est associée à un type de fichier (par exemple .myFileType) et l'utilisateur double-clique sur un fichier avec cette extension dans le Finder. En réalité, les services de lancement envoient votre application à un événement Apple «open documents» («odoc»). NSApplication enregistre par défaut un handle pour cet événement et transmet la demande en appelant la méthode déléguée appropriée. Vous pouvez également écouter directement cet événement Apple, je suppose, mais pourquoi le feriez-vous? Traiter avec Apple Events directement est embarrassant. Lorsque votre application n'est pas Cocoa, mais Carbon (plain-C), vous devrez peut-être traiter directement l'événement Apple (je ne suis pas familier avec Carbon), mais dans Cocoa Apple attrape déjà les événements Apple les plus importants et les convertit dans les appels de délégation ou les notifications que votre application peut écouter.
Je ne pense pas que vous pouvez utiliser Cocoa et C#.Je ne connais que les bindings Cocoa de Ruby, Python et Objective-C (Objective-C étant le mieux supporté, d'après ce que j'ai compris). Alors que vous pouvez écrire des applications OS X en utilisant C# avec Mono, je ne pense pas que vous pouvez utiliser Cocoa de C#. – Andy
Recherche Cocoa # Andy. –