Quicklook嵌入式预览

SG1*_*SG1 8 cocoa objective-c nsview ios

来自quicklook的文档:

"Quick Look的消费者部分有三个组件:文档阅读器(由自定义视图和面板组成),该阅读器的显示包,以及用于与客户端进行通信的SPI.每个组件都有特定的角色可以发挥作用支持消费者:

文档阅读器 - 快速查看实现了为显示文档预览而定制的视图(NSView)和面板(NSPanel).与预览内容一起,视图可能包括(在客户端选项)用于操作预览的控件,例如页面转发,页面转发,开始播放,倒带和文本搜索.客户端应用程序可以在其用户界面中嵌入此视图(如果选择). "快速查看"面板包含"快速查看"视图和各种控件,可让用户对预览执行某些操作,例如使预览图像全屏或开始幻灯片放映.

我一直在研究quicklook的所有文档和示例,我也看不到:

  1. 任何类型的"文档阅读器"组件的定义或访问它的方式.
  2. 任何类型的SPI都将显示如何消费者快速查看
  3. 可以直接访问quicklook使用的NSView来显示预览.

我只想按照文档说的那样做:在我自己的层次结构中嵌入quicklook的视图,而不是在Panel中.该小组当然有丰富的文件.以前有没有人以这种方式成功使用过Quicklook?

Con*_*ltz 7

你正在寻找的是类QLPreviewView的一部分Quartz.framework.这是一个公共课(我相信在Lion中引入). 不幸的是,文档团队显然尚未发布其文档,这可能是您无法找到它的原因.官方的文档现已上市.

短而短的版本是您以任何其他视图的方式创建它,并将其设置previewItemid <QLPreviewItem>您提供的视图.的<QLPreviewItem>协议进行了说明.例如

QLPreviewView *pv = [[QLPreviewView alloc] initWithFrame:frame
                                                   style:QLPreviewViewStyleNormal];
[pv setPreviewItem:item];
[myView addSubview:pv];
[pv release];
Run Code Online (Sandbox Code Playgroud)

这是YMMV的基本概念.

它的操作在2011 WWDC会议"Mac OS X和iOS上的系统级预览"(或类似的东西)中得到了全面介绍.如果您是Mac OS X或iOS开发人员计划的付费会员,您应该能够获得该视频.