Apple PDFKit 通知无法正常工作

Posted

技术标签:

【中文标题】Apple PDFKit 通知无法正常工作【英文标题】:Apple PDFKit Notifications not working properly 【发布时间】:2019-11-03 14:05:31 【问题描述】:

我尝试在我的 pdfView 中当前可见页面发生变化时立即收到通知。

实际上,这应该根据 .PDFViewVisiblePagesChanged 的文档工作。

但是,我只在第一次 pdfView didLoad 时收到通知。

一旦我滚动(因此可见页面发生变化),我就没有收到任何通知。有趣的是通知 .PDFViewPageChanged 正常工作(但在这种情况下还不够)。 .PDFViewScaleChanged 也有同样的行为:在这里我在 pdfView 内放大时从未收到通知。

来自我的 ViewController 的代码片段:

ovverride func viewDidLoad() 
    //...
    NotificationCenter.default.addObserver(self, selector: #selector(onDidVisiblePagesChanged(_:)), name: .PDFViewPageChanged, object: nil)
    //...

@objc func onDidVisiblePagesChanged(notification:Notification) 
   print("visible Pages changed!")

【问题讨论】:

我也有同样的问题。我已将其报告给 bugreport.apple.com。这也可能是文档问题。 【参考方案1】:

问题出在你的函数“onDidVisiblePagesChanged,你正在等待一个参数类型通知,你需要在你的函数中强制转换参数

@objc func onDidVisiblePagesChanged(_ sender:Any) 
    if let notification = sender as? Notification 
        print("visible Pages changed!")
        print(notification)
    

【讨论】:

以上是关于Apple PDFKit 通知无法正常工作的主要内容,如果未能解决你的问题,请参考以下文章

APNS Apple 推送通知令牌过时并停止工作

推送通知在 Apple Beta 测试 (TestFlight) 中不起作用

远程推送通知

如何从 Apple 推送通知中获取 userInfo

从 Java 6 升级到 Java 7/8 后,Apple 推送无法正常工作

过滤 Apple 推送通知