Wie kann ich eine Datei (oder wählen Sie im Finder öffnen) eines Typs in der Info.plist auf mein Dock-Symbol und dann eine Methode mit dem vollständigen Pfad der Datei aufrufen ?Löschen von Dateien auf Dock-Symbol in Cocoa
Antwort
Wenn Sie Ihre Info.plist herauf CFBundleDocumentTypes Array richtig eingestellt haben (entweder ‚LSItemContentTypes‘ oder ‚CFBundleTypeExtensions‘), dann brauchen Sie nur einen NSApplication Delegierten einzurichten und die delegierte Methode zu implementieren, application:openFile:.
Wenn mehrere Dateien gleichzeitig gelöscht werden sollen, implementieren Sie application:openFiles:.
Für die versprochenen Dateien (NSFilesPromisePboardType
/kPasteboardTypeFileURLPromise
) siehe Dropping promised files on to application icon in Dock.
Ich habe mein CFBundleDocumentTypes-Array ordnungsgemäß eingerichtet und die Methode geschrieben, aber das Dock-Symbol akzeptiert meine Datei einfach nicht. –
Tristian Seifert: Eine mögliche Ursache für dieses Problem ist, dass Sie ein UTI in Ihrem Plist angegeben haben, aber es war das falsche: http: // boedzo.org/blog/archives/2007-07-23/how-to-machen-your-apps-dock-tile-highlight Sie sollten auch sicherstellen, dass Sie alle UTIs importieren, die Sie im plist erwähnen: http://developer.apple. com/mac/library/documentation/FileManagement/Conceptual/converting_utis/ –
Nachdem ich diese beiden Dokumente gelesen habe, verstehe ich immer noch nicht ganz, wie ich UTIs zu meinem bestehenden PList hinzufügen kann. Hier ist ein kleiner Teil meiner Info.plist: \t \t
Wenn Sie tatsächlich eine dokumentenbasierte App erstellen, müssen Sie bei der Einrichtung des Pfades viel mehr Arbeit erledigen, als Sie benötigen. Verwenden Sie einfach die dokumentenbasierte Anwendungsvorlage. Der Dokumenten-Controller erstellt eine Instanz der richtigen Klasse für Sie; Sie müssen nur diese Klasse schreiben.
Eine Anwendung, die Sie auf diese Weise erstellen, behandelt Datei-Drops (indem Sie sie als Dokumente öffnen) kostenlos.
Es ist keine dokumentbasierte App, es ist ein E-Mail-Reader, und ich möchte in der Lage sein, Entwürfe, Mailboxen usw. auf mein Dock-Icon zu ziehen. –
Wählen Sie Ihre Anwendung in der Zielgruppe des Seitenbereichs aus und verwenden Sie get info. Wählen Sie dann im neuen Fenster die Registerkarte Eigenschaften, um einen neuen Dokumenttyp hinzuzufügen. Benennen Sie es "Folder" für Bequemlichkeit und die OS-Typen muss "fold" werden; der Geschäftstyp und die Rolle, die Sie so lassen können.
Danke Es hat mir geholfen, meine App zum Laufen zu bringen. – AmitSri
Auf aktuellen Systemen können Sie einen UTI statt der alten vierköpfigen Typen (wie fold
oben) verwenden. In Xcode Dokument-Typ-Editor, stellen einen neuen Typ mit:
- Name: Ordner
- Identifikation: public.folder
public.folder
ist ein Subtyp von public.directory
. public.folder
gleicht Verzeichnisse ab, die dem Benutzer als solche erscheinen, d. H. Keine Pakete wie .app
Wrapper.
Hier ist eine aktualisierte Lösung für Xcode 5. In AppDelegate.m
-(BOOL)application:(NSApplication *)sender openFile:(NSString *)filename
{
NSLog(@"%@", filename);
return YES;
}
Und in Xcode Setup-Dokumenttypen unter Projekt> Ziele> Info:
Überprüfen Sie die Einstellungen in Info.plist in Falls Sie ein leeres Feld 'Dokumentinhaltstyp-UTIs' haben, das korrekt ausgefüllt oder gelöscht werden soll.
Ihr Info.plist sollte wie folgt aussehen:
große Antwort! sehr hilfreich. Danke, – gypsyDev
Beachten Sie, dass dies Ihre Bewerbung akzeptieren * Datei *, nicht nur eine bestimmte Erweiterung, weil CFBundleTypeExtensions auf '*' gesetzt ist. Wenn Sie nur bestimmte Dateierweiterungen unterstützen, geben Sie diese stattdessen an. Andernfalls bietet das Betriebssystem an, zufällige Dateien mit Ihrer Anwendung zu öffnen, nur damit Ihre App dann fehlschlägt. – uliwitness
- 1. Dateien in Cocoa
- 2. Erstellen von Excel-Dateien (.xlsx) in Cocoa
- 3. Löschen auf Dateien schließen
- 4. Dateien öffnen - Cocoa
- 5. Löschen von Dateien in git
- 6. Löschen von Dateien manchmal nicht auf Mac
- 7. Heroku Löschen von Dateien auf Git Push?
- 8. Löschen von Dateien/Uploads beim Löschen Benutzer
- 9. Löschen von Dateien von FTP in C#
- 10. Löschen/Überschreiben von Image-Dateien auf dem iPhone obj c
- 11. Löschen von Dateien im Baum
- 12. Automatisches Löschen von Dateien in Google Drive
- 13. Löschen von * .kml-Dateien in temporären Internetdateien
- 14. Löschen von Dateien mit Platzhalter in Laravel
- 15. Alles löschen, bis auf zwei Dateien
- 16. Löschen von Dateien von git mit gitpython
- 17. Öffnen von Dateien, Schreiben, in Dateien und Löschen von Dateien in Java
- 18. Löschen von Dateien älter als x Tage auf hadoop
- 19. Batch Löschen von Dateien aus einer Datei auf Cmd Linie
- 20. Löschen von Dateien auf SD-Karte Ich wähle
- 21. tf.exe Äquivalent zum Löschen von hinzugefügten Dateien
- 22. Lokalisierung in Cocoa
- 23. Samba, CIFS und Löschen von Dateien
- 24. .csproj Datei - Programmatisches Hinzufügen/Löschen von Dateien
- 25. Verwenden von NSFontPanel in Cocoa
- 26. Python Vergleich und Löschen von Dateien
- 27. Wie löschen Sie den WebView-Cache in Cocoa?
- 28. Löschen von Dateien nach partitionierten Schritt Verarbeitung
- 29. Ausführen von NSRunLoop in einem Cocoa-Befehlszeilenprogramm
- 30. Wie programmatisch wirklich sauber löschen Dateien löschen?
Ich verstehe die Frage nicht. Zieht der Benutzer eine Datei auf Ihr Dock-Symbol oder möchten Sie die Datei programmgesteuert öffnen? –
Ich meine, tatsächlich den Pfad zu der Datei zu erhalten, die auf dem Dock-Symbol abgelegt wurde. –