Estoy implementando una extensión de vista previa de vista rápida en macOS que mostrará una vista previa de algunos tipos de audio no compatibles.
Para poder detener la reproducción de audio cuando el usuario deja de obtener una vista previa, estoy pausando mi motor de audio en -viewDidDisappear .
Sin embargo, el problema es que -viewDidDisappear solo se llama cuando se sale de Quick Look en Finder por completo, no cuando estoy navegando al archivo siguiente/anterior con las teclas de flecha.
class PreviewViewController: NSViewController, QLPreviewingController { func preparePreviewOfFile(at url: URL, completionHandler handler: @escaping (Error?) -> Void) { player.load(url) player.play() } override func viewDidDisappear() { // Not called when switching to the next or previous preview in Finder! player.stop() } } Intenté revisar todos los sospechosos habituales tanto en NSViewController ( -removeFromParent , -viewWillDisappear , -viewDidDisappear ) como en NSView ( -viewDidHide , -viewDidMoveToWindow , -viewDidMoveToSuperview ), pero sin éxito.
No se llama a ninguno de ellos cuando cambio a un archivo diferente en la vista previa de Quick Look en Finder con las teclas de flecha (lo que da como resultado que el audio continúe reproduciéndose mientras estoy buscando rápidamente otro archivo).
¿Alguien sabe cómo saber si mi controlador de vista previa se ha ocultado?