Ich erstelle ein einfaches FinderSync , das hinzugefügt wird ein Menüelement zum Kontroll- / Rechtsklickmenü für alle Dateien:
%Vor% Es funktioniert großartig (der Menüeintrag erscheint usw.) für alle Dateien, außer die in /Volumes
Seltsamerweise, wenn ich manuell ein Verzeichnis in /Volumes
erstelle und dort einige Dateien hinzufüge, Der Menüpunkt FinderSync erscheint, wenn ich mit der rechten Maustaste klicke. Für alle Dateien in bereitgestellten Volumes (d. H. Von einem angehängten .dmg) schlägt es jedoch fehl: kein Menüelement wird angezeigt.
Das direkte Angeben eines gemounteten Volumes in directoryURLs
schlägt ebenfalls fehl:
Es scheint andere hatten ähnliche Probleme, also ist dies vielleicht ein bekannter Fehler / Einschränkung?
Die Gruppe von Ordnern, die von einer Finder Sync-Erweiterung überwacht wird, überschreitet nicht Dateisystemgrenzen (obwohl dies in der Dokumentation von Apple nicht explizit erwähnt wird, kann es empirisch verifiziert werden und ist ab macOS 10.13 immer noch gültig .3).
Da der beabsichtigte Anwendungsfall darin besteht, bestimmte Ordner zu überwachen, die von Synchronisierungsdienstprogrammen wie Dropbox verwaltet werden, sieht Apple dies vermutlich nicht als Einschränkung. Viele Entwickler implementieren Finder Sync-Erweiterungen jedoch als eine Möglichkeit zum Hinzufügen beliebiger Elemente zum übergeordneten Kontextmenü im Finder (ohne im Untermenü Dienste eingeschränkt zu sein), obwohl diese Verwendung ausdrücklich von Apple abgeraten :
Stellen Sie sicher, dass der Finder Sync-Erweiterungspunkt für die Option geeignet ist Funktionalität, die Sie bereitstellen möchten. Die besten Finder Sync-Erweiterungen Unterstützen Sie Apps, die den Inhalt eines lokalen Ordners mit einem Remote synchronisieren Datenquelle. Finder Sync ist nicht als allgemeines Tool für Ändern der Benutzeroberfläche des Finders.
Um diese Einschränkung zu umgehen und den Menüeintrag der Erweiterung für jedes im Finder sichtbare Element verfügbar zu machen, müssen Sie Folgendes tun:
Nach allen sichtbaren eingehängten Volumes suchen und initialisieren
directoryURLs
Eigenschaft des Objekts FIFinderSyncController
auf
das Ergebnis:
Da Finder Sync-Erweiterungen langlebige Prozesse sind, registrieren Sie sich
für Benachrichtigungen über Volumes, die bereitgestellt, ausgehängt und umbenannt werden,
und update directoryURLs
entsprechend:
(Das Abmelden und Umbenennen von Benachrichtigungen wird als Übung belassen für den Leser.)
Tags und Links objective-c operating-system findersync