Swift versión 4:
Declarar NSWorkspace en applicationDidFinishLaunching y añadir observadores de montaje y desmontar eventos.
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)
montaje Captura y eventos desmontar en:
@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)
}
}
Se imprimirá la ruta del dispositivo por ejemplo/Volumes/EOS_DIGITAL Aquí son las constantes se pueden leer desde userInfo.
NSDevicePath,
NSWorkspaceVolumeLocalizedNameKey
NSWorkspaceVolumeURLKey
¿Hay alguna razón para utilizar esto en NSWorkspace como se describe a continuación? Es una biblioteca de terceros, por lo que los beneficios tendrían que ser importantes para convencerme de agregar una dependencia adicional al proyecto. – Brian