gpt4 book ai didi

快速显示 QLPreviewPanel

转载 作者:行者123 更新时间:2023-12-02 05:20:39 27 4
gpt4 key购买 nike

我想使用 QLPreviewPanel 预览一些文件。

我使用 Storyboard 包含了以下 ViewController

class ViewController: NSViewController, QLPreviewPanelDataSource, QLPreviewPanelDelegate {
override func viewDidAppear() {
super.viewDidAppear()

self.nextResponder = MainWindowController.testinstance!.nextResponder
}

@IBAction func btn(_ sender: Any) {
openPreview(url: URL(fileURLWithPath: "/Users/usr/Desktop/test.mp3"))
}

//preview for audio
private var previewURL : URL?
func openPreview(url: URL){
previewURL = url
if let sharedPanel = QLPreviewPanel.shared() {
sharedPanel.delegate = self
sharedPanel.dataSource = self
sharedPanel.makeKeyAndOrderFront(nil)
}
}

func numberOfPreviewItems(in panel: QLPreviewPanel!) -> Int {
return 1
}

func previewPanel(_ panel: QLPreviewPanel!, previewItemAt index: Int) -> QLPreviewItem! {
if previewURL == nil {
return nil
}
return previewURL as? QLPreviewItem
}

override func acceptsPreviewPanelControl(_ panel: QLPreviewPanel!) -> Bool {
return true
}

override func beginPreviewPanelControl(_ panel: QLPreviewPanel!) {
panel.dataSource = self
panel.delegate = self
}

override func endPreviewPanelControl(_ panel: QLPreviewPanel!) {
panel.dataSource = nil
panel.delegate = nil
}}

一切正常 - 但我收到错误[QL] QLError(): -[QLPreviewPanel setDelegate:] 在面板没有 Controller 时调用 - 修复这个问题,否则很快就会出现。
请参阅 QLPreviewPanel.h 中关于 -acceptsPreviewPanelControl:/-beginPreviewPanelControl:/-endPreviewPanelControl: 的注释。

我该如何解决?还是直接忽略该错误?

最佳答案

声明一个 QLPreviewController 然后尝试显示项目。

下面是一个使用QLPreviewController查看和打开文件的例子

Example of QLPreviewController

关于快速显示 QLPreviewPanel,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52352723/

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