我正在macOS上实现一个Quick Look Preview扩展,它将预览一些不支持的音频类型。
为了能够在用户停止预览时停止音频播放,我暂停了-viewDidDisappear
中的音频引擎。
然而,问题是-viewDidDisappear
只在退出Finder中的Quick Look时被调用,而不是在我用箭头键导航到下一个/上一个文件时。
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()
}
}
我已经尝试过NSViewController(-removeFromParent
,-viewWillDisappear
,-viewDidDisappear
)和NSView(-viewDidHide
,-viewDidMoveToWindow
,-viewDidMoveToSuperview
)上的所有常见问题,但没有成功。
当我用箭头键在Finder中的快速查看预览中切换到不同的文件时,它们都不会被调用(导致音频在我快速查看其他文件时继续播放)。
有人知道如何知道我的预览视图控制器是否被隐藏了吗?
1条答案
按热度按时间67up9zun1#
我遇到了同样的问题,找不到任何公共API来通知。
我想出了下面的代码,在文图拉工作。
这可能无法通过应用商店的审查,但你总是可以模糊它一点点。多年来,我看到许多公司发布了类似的修复程序。只要它是无害的,它应该是好的。