Existe-t-il un moyen d'obtenir les derniers fichiers ouverts d'une application? Je sais avec LSSharedFileListCreate que vous pouvez obtenir un tableau des documents récents globaux de l'utilisateur mais je me demandais s'il était possible d'obtenir les documents récents pour une application spécifique, comme Xcode, en utilisant le cacao ou l'objectif-c.Derniers documents ouverts utilisant Cocoa
Répondre
Je ne pense pas qu'il y ait une API publique pour obtenir des documents récents d'applications autres que le vôtre. Les fichiers récents sont enregistrés en tant que plists dans ~/Library/Preferences
, donc vous pouvez simplement les lire directement. Notez toutefois que le format de ces plists peut changer avec les futures mises à niveau du système d'exploitation, vous ne devriez donc pas vous en remettre à cela.
Voici un exemple pour lire les documents récents de Xcode:
NSString *bundleID = @"com.apple.dt.Xcode";
NSString *prefPath = [[NSSearchPathForDirectoriesInDomains(NSLibraryDirectory, NSUserDomainMask, YES) objectAtIndex:0] stringByAppendingPathComponent:@"Preferences"];
NSString *recentFilesFileName = [bundleID stringByAppendingPathExtension:@"LSSharedFileList.plist"];
NSString *recentFilesPath = [prefPath stringByAppendingPathComponent:recentFilesFileName];
NSArray *recentDocumentItems = [[[NSDictionary dictionaryWithContentsOfFile:recentFilesPath] objectForKey:@"RecentDocuments"] objectForKey:@"CustomListItems"];
for (NSDictionary *recentDocumentItem in recentDocumentItems) {
NSString *name = [recentDocumentItem objectForKey:@"Name"];
NSData *bookmarkData = [recentDocumentItem objectForKey:@"Bookmark"];
NSError *error = nil;
NSURL *bookmarkURL = [NSURL URLByResolvingBookmarkData:bookmarkData options:NSURLBookmarkResolutionWithoutMounting | NSURLBookmarkResolutionWithoutUI relativeToURL:nil bookmarkDataIsStale:NULL error:&error];
if (bookmarkURL) {
NSLog(@"File name: %@", name);
NSLog(@"URL: %@", bookmarkURL);
} else {
NSLog(@"Could not resolve URL for file %@: %@", name, error);
}
}
Cela ne fonctionnera pas dans une application sandbox bien sûr.
Vous pouvez utiliser -[NSDocumentController recentDocumentURLs]
, qui récupère un tableau d'URL des documents les plus récemment ouverts:
NSArray *array = [[NSDocumentController sharedDocumentController] recentDocumentURLs];
Je sais '- [NSDocumentController recentDocumentURLs]' retournera les documents récents pour l'application en cours d'exécution, mais existe-t-il un moyen de spécifier de quelle application nous voulons obtenir les documents récents, comme obtenir les documents récents de Xcode? – user1998511
Non. Votre seule option est dans LSSharedFileList, et même alors, c'est seulement pour tous les fichiers les plus récents de l'utilisateur. Désolé pour le malentendu; C'est seulement à partir de votre commentaire que j'ai compris ce que vous vouliez vraiment. – trudyscousin
oh ok, je vois. Merci pour l'info. – user1998511
- 1. CouchDB, obtenez 10 derniers documents
- 2. Scripts longs et documents ouverts
- 3. Mongo supprimer les derniers documents
- 4. Ouvrir des documents avec Cocoa
- 5. SolrJ addFile conserve les documents ouverts
- 6. Obtenir tous les documents Excel ouverts
- 7. trouver des documents des x derniers jours?
- 8. 5 derniers documents relatifs à plusieurs enregistrements
- 9. Sélectionnez les derniers documents dans MongoDB
- 10. Comment sauvegarder les derniers fichiers ouverts pour chaque projet actif?
- 11. comment ouvrir les derniers fichiers ouverts dans ISE au démarrage
- 12. Liste des documents ouverts dans VisualStudio (Plugin-Development)
- 13. documents ouverts dans le navigateur avec Zoho api
- 14. Comment puis-je obtenir les 50 derniers documents dans mongoDB?
- 15. Derniers enregistrements utilisant sql
- 16. valider XML dans tous les documents ouverts dans Notepad ++
- 17. Identification des documents Word ouverts par Selenium Webdriver
- 18. Gestion des documents xml (xlsx) ouverts au bureau avec PHP
- 19. Visual Studio 2015 réorganisation des documents ouverts lorsque sélectionnés
- 20. Comment obtenir les documents ouverts en cours dans Excel en utilisant C#?
- 21. Application OSX basée sur des documents - Limite du nombre de documents ouverts à un
- 22. Comment obtenir les 5 derniers documents dans un ordre séquentiel?
- 23. réduisant la sortie du MongoDB en prenant derniers documents
- 24. Sélectionnez les N derniers documents de tous les utilisateurs dans Collection MongoDB en utilisant C#
- 25. Plusieurs documents ouverts en même temps, chacun avec des états d'élément de menu différents
- 26. Fermeture des fichiers ouverts en utilisant C#
- 27. Existe-t-il un raccourci clavier pour parcourir les documents ouverts dans Geany?
- 28. Utilisant Google Documents avec Javascript
- 29. PDF/DOC/XLS Les documents ne seront pas ouverts après le déploiement de l'application web vb.net
- 30. Ouverture de plusieurs documents PDF en utilisant le fichier batch
C'est exactement ce que je cherche. Merci beaucoup! – user1998511