我该如何使用QLPreviewPanel
?我知道它以前不是公共 API,但它在 10.6 中。如何使用它在标准 QuickLook 面板中显示文件的预览?
3 回答
查看QuickLookDownloader代码。它会引导您完成一些需要做的事情才能合并QLPreviewPanel
到您的代码中。其中一些包括:
- 使您的对象符合
QLPreviewItem
协议 - 这告诉 Quick Look 在哪里可以找到您要预览的文件(并且您正在预览文件 - 您不能传递自定义数据)。 - 为 定义数据源和委托
QLPreviewPanel
(如果您NSTableView
以前使用过 s,这应该很熟悉)。 - 通过协议配置预览面板
QLPreviewPanelController
(您在其中分配数据源和委托)。 - 显示共享预览面板。
项目 1-3 在MyDocument
示例代码的类中处理。切换显示主要在AppDelegate
课堂上处理。类中还支持通过空格键DownloadsTableView
切换QLPreviewPanel
Finder,例如 Finder。
我只是在看这个自己。并且发现 Apple 在Docs中提供了一个很好的示例指南,这里也有一个很好的示例代码和文件 -> animgifqlgen
我正在使用丰富的 HTML 方法,这似乎可以满足我的需要。
这个想法是使用您通常用来解析文件信息的任何代码。并使用 html 进行布局并嵌入解析的信息,然后将 html 显示在 QL 面板中。很多普通的 html 代码都像 size width length,bgcolor,src ...
该示例将展示如何编写包含 html 部分的代码。其中使用 NSMutableString 及其 appendString 和 appendFormat: 来构建 html。
我还没有尝试过其他方法。
为了测试,我刚刚在 plist 中配置了文档内容类型 UTI,并将构建产品(插件)的副本放在我的 /Users/username/Library/QuickLook/ 文件夹中。
您可能必须创建文件夹。
请注意,当您想通过拖放文件夹中的新副本来替换 QuickLook 文件夹中的插件时,它可能正在使用中。把旧的扔进垃圾桶就行了。我还发现它有助于使用 Activity Monitor 应用程序退出 Quick Look Helper 进程。这样做确保我看到的是新版本插件的结果,而不是仍在记忆中的旧版本。(我肯定有人会告诉我我做得不好;-))
可悲的是 Apples QuickLookDownloader Demo 使用的是 Obj-C。我用显示面板功能扩展 了Josh 的 Demo,以展示它是如何在 Swift 中完成的: Panel and Popover example