Swift 4 wersja:
stwierdzenie NSWorkspace w applicationDidFinishLaunching i dodać obserwatorów na podłączanie i odłączanie zdarzeń.
let workspace = NSWorkspace.shared
workspace.notificationCenter.addObserver(self, selector: #selector(didMount(_:)), name: NSWorkspace.didMountNotification, object: nil)
workspace.notificationCenter.addObserver(self, selector: #selector(didUnMount(_:)), name: NSWorkspace.didUnmountNotification, object: nil)
Przechwytywanie podłączanie i odłączanie wydarzenia:
@objc func didMount(_ notification: NSNotification) {
if let devicePath = notification.userInfo!["NSDevicePath"] as? String {
print(devicePath)
}
}
@objc func didUnMount(_ notification: NSNotification) {
if let devicePath = notification.userInfo!["NSDevicePath"] as? String {
print(devicePath)
}
}
To będzie drukować ścieżkę urządzenia np/Volumes/EOS_DIGITAL Oto stałe można odczytać z userinfo.
NSDevicePath,
NSWorkspaceVolumeLocalizedNameKey
NSWorkspaceVolumeURLKey
Czy istnieje powód, aby używać tego w NSWorkspace, jak opisano poniżej? Jest to biblioteka stron trzecich, więc korzyści będą musiały być znaczące, aby przekonać mnie do dodania dodatkowej zależności do projektu. – Brian