gpt4 book ai didi

ios - 将观察者添加到 PDFView 时发送到实例的无法识别的选择器

转载 作者:行者123 更新时间:2023-11-28 13:41:54 36 4
gpt4 key购买 nike

当用户滑动到 PDFView 中的下一页或上一页时,我正在尝试进行一些 UI 更改。我将其设置为使用默认的 PageViewController。我在 PDFView 上添加了一个观察器,并为其设置了一个选择器。当我尝试滑动时它崩溃了,错误消息是这样的:

-[PDFView handlePageChangedWithNotification:] unrecognized selector sent to instance
...
Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[PDFView handlePageChangedWithNotification:]: unrecognized selector to instance.

我检查了委托(delegate)方法,但没有找到任何有助于实现此功能的方法。所以,我假设我必须正确命名它才能工作。这是我用来添加观察者的代码:

// Add observer to pdfView
// This is added in viewDidAppear()
NotificationCenter.default.addObserver(pdfView, selector #selector(handlePageChange(view:)), name: .PDFViewPageChanged, object: nil)

// Selector method for observer
@objc private func handlePageChange(view: PDFView)
{
// Do some changes
}

如果此页面被标记为书签,我希望能够检查何时显示新页面能够检查 PDFOutline 并更改书签按钮以显示它已经是书签。感谢您提供的任何帮助。

编辑:我检查了 PDFViewPageChanged 通知的文档,它说通知对象是 PDFView 本身。它仍然在崩溃,但我想这是一个问题。我在上面的代码示例中将其更改为现在的内容。

最佳答案

您告诉通知中心在通知触发时通知 PDFViewPDFView 没有实现该方法。无论您在哪个类中编写该方法,都应该处理通知。所以:

NotificationCenter.default.addObserver(self, selector #selector(handlePageChange(view:)), name: .PDFViewPageChanged, object: nil)

此外,您的通知处理程序方法的签名错误。通知中心将通知传递给方法,而不是实际 View ,因此您希望它是

@objc private func handlePageChange(notification: Notification)

关于ios - 将观察者添加到 PDFView 时发送到实例的无法识别的选择器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55909657/

36 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com