gpt4 book ai didi

objective-c - QLPreviewController.currentPreviewItemIndex 键值观察

转载 作者:太空狗 更新时间:2023-10-30 03:54:07 26 4
gpt4 key购买 nike

我有一个对象需要在 QLPreviewController 更改显示的文档时得到通知。 QLPreviewController 具有在文档更改时更新的属性 currentPreviewItemIndex。我已经将我的对象添加为 currentPreviewItemIndex 的观察者,并且当我的代码更改属性时它会收到通知,到目前为止一切顺利。问题是用户可以在屏幕上滑动来更改显示的文档,我发现在这种情况下不会生成通知。

在这种情况下,有什么解决方案可以接收通知吗?我想通知是在调用属性 currentPreviewItemIndex 的 setter 时生成的,并且可能是在用户滑动该属性时在对象 QLPreviewController 内部更改时生成的。

另一种解决方案可能是禁用 QLPreviewController 中的水平滑动但保留垂直滑动(有箭头按钮可以更改显示的文档)。你是怎么做到的?

在此先感谢您的帮助。

贾南德雷亚

最佳答案

在 QLPreviewController 上创建一个类别并调配适当的方法,或者为 KVO 添加 willChange/didChange ;)

但说真的:我尝试了 KVO,但它对我也不起作用。1) id 向 apple 提交了一个错误,说你需要这个

但作为解决方法

  • (id )previewPanel:(QLPreviewPanel *)panel previewItemAtIndex:(NSInteger)index {

这叫做 ok,每次我们滑动时,我都会“破解”它以触发您自己的正确 KVO。像

     static NSInteger oldIndex = -1; //reset when the panel is hidden or shown
int newIndex = qlController.displayedIndex;
if(oldIndex != newIndex) {
oldIndex = newIndex;
[qlController willChangeValueForKey:@"displayedIndex"];
[qlController didChangeValueForKey:@"displayedIndex"];
}

我在这里以内联方式编写,因此肯定会有错别字和错误,但我认为一般方法可行。

关于objective-c - QLPreviewController.currentPreviewItemIndex 键值观察,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13270731/

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