Erkennen, wenn ein Volume unter OS X gemountet ist

7

Ich habe eine OS X-Anwendung, die auf ein Volume antworten muss, das gemountet oder ausgehängt wird.

Ich habe dieses Problem bereits gelöst, indem ich regelmäßig die Liste der Volumes abruft und nach Änderungen suche, aber ich würde gerne wissen, ob es einen besseren Weg gibt.

    
Brian 13.09.2012, 15:12
quelle

4 Antworten

10

Registrieren Sie sich bei der Benachrichtigungszentrale, die Sie von [[NSWorkspace sharedWorkspace] notificationCenter] erhalten, und bearbeiten Sie dann die Benachrichtigungen, an denen Sie interessiert sind. Dies sind die volumenbezogenen: NSWorkspaceDidRenameVolumeNotification , NSWorkspaceDidMountNotification , NSWorkspaceWillUnmountNotification und NSWorkspaceDidUnmountNotification .

    
Analog File 13.09.2012, 15:36
quelle
15

Der Ansatz NSWorkspace ist genau die Art von Dingen, nach denen ich gesucht habe. Ein paar Zeilen Code später habe ich eine viel bessere Lösung als mit einem Timer.

%Vor%     
Brian 13.09.2012 16:07
quelle
2

Kennen Sie SCEvents ? Sie können benachrichtigt werden, wenn sich der Inhalt eines beobachteten Ordners ändert ( /Volumes ). Auf diese Weise müssen Sie keinen Timer verwenden, um den Inhalt regelmäßig zu überprüfen.

    
DrummerB 13.09.2012 15:19
quelle
1

Schnelle 4 Version:

Deklarieren Sie NSWorkspace in applicationDidFinishLaunching und fügen Sie Beobachter für das Einhängen und Unmounten von Ereignissen hinzu.

%Vor%

Erfassung von Mount- und Unmount-Ereignissen in:

%Vor%

Es wird der Gerätepfad z. B. / Volumes / EOS_DIGITAL gedruckt Hier sind die Konstanten, die Sie von userInfo lesen können.

%Vor%     
mohacs 11.10.2017 10:04
quelle

Tags und Links