【发布时间】:2019-10-28 09:51:59
【问题描述】:
我有使用 QLPreviewController 显示来自 MS 的文档的应用程序。办公室。我将此控制器用于多个文件。我需要记录已经查看过的文件。但是我找不到在 PreviewItem 更改时触发的事件。
我尝试在调用 GetPreviewItem 时触发事件,但这个方法只调用了每个预览项目 1 次。所以我不能用这个。
任何人都可以帮助我找到如何检测 QLPreviewItem 更改?
【问题讨论】:
我有使用 QLPreviewController 显示来自 MS 的文档的应用程序。办公室。我将此控制器用于多个文件。我需要记录已经查看过的文件。但是我找不到在 PreviewItem 更改时触发的事件。
我尝试在调用 GetPreviewItem 时触发事件,但这个方法只调用了每个预览项目 1 次。所以我不能用这个。
任何人都可以帮助我找到如何检测 QLPreviewItem 更改?
【问题讨论】:
您可以使用Key-Value Observing 执行此操作。将QLPreviewController 子类化并添加如下内容:
var observation: NSKeyValueObservation?
override func viewDidLoad() {
super.viewDidLoad()
observation = observe(\.currentPreviewItemIndex, options: [.new] ) { _, change in
// You get the new index value in change.newValue
}
}
【讨论】: