Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/macos/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Swift Can';尝试预览文件时,无法使QuickLook正常工作_Swift_Macos_Cocoa_Quartz_Quicklook - Fatal编程技术网

Swift Can';尝试预览文件时,无法使QuickLook正常工作

Swift Can';尝试预览文件时,无法使QuickLook正常工作,swift,macos,cocoa,quartz,quicklook,Swift,Macos,Cocoa,Quartz,Quicklook,我正在使用故事板编写一个带有Swift的macOS应用程序。我有一个NSTableView,其中包含我希望用户能够通过QuickLook预览的文件 我似乎把所有的东西都准备好了,我的代码看起来和这里描述的非常相似:,但是我不断地得到错误 -[QLPreviewPanel setDataSource:] called while the panel has no controller - Fix this or this will raise soon. See comments in Q

我正在使用故事板编写一个带有Swift的macOS应用程序。我有一个NSTableView,其中包含我希望用户能够通过QuickLook预览的文件

我似乎把所有的东西都准备好了,我的代码看起来和这里描述的非常相似:,但是我不断地得到错误

-[QLPreviewPanel setDataSource:] called while the panel has no controller - Fix this or this will raise soon.
    See comments in QLPreviewPanel.h for -acceptsPreviewPanelControl:/-beginPreviewPanelControl:/-endPreviewPanelControl:.
我一直在尝试用Swift和故事板使上述帖子的解决方案适应我的情况

主要作品有:

导入石英
类ViewController:NSViewController、QLPreviewPanelDataSource、QLPreviewPanelDelegate{
重写func viewDidLoad(){
super.viewDidLoad()
//加载视图后执行任何其他设置。
让windowNextResponder=self.view.window?.nextResponder
self.view.window?.nextResponder=self
self.nextResponder=windowNextResponder
}
//***快看的东西***
@iAction func quickLookButtonAction(\发送方:任意){
防护面板!=无其他{
返回
}
如果qlPanel!.currentController==nil{
打印(“无控制器”)
//qlPanel!.windowController=self.view.window?.windowController
//qlPanel!.updateController()
}否则{
打印(qlPanel!.currentController)
}
qlPanel!.delegate=self
qlPanel!.dataSource=self
qlPanel!.MakeKeyandDerfront(自)
}
func numberOfPreviewItems(在面板中:QLPreviewPanel!)->Int{
返回CSVarrayController.selectedObjects.count
}
func previewPanel(uPanel:QLPreviewPanel!,PreviewItem索引:Int)->QLPreviewItem{
让file=CSVarrayController。选择对象[index]作为!CSVfile
将file.url作为NSURL返回
}
重写func acceptsPreviewPanelControl(uPanel:QLPreviewPanel!)->Bool{
返回真值
}
重写func beginPreviewPanelControl(uPanel:QLPreviewPanel!){
panel.dataSource=self
panel.delegate=self
}
重写func endPreviewPanelControl(uPanel:QLPreviewPanel!){
panel.dataSource=nil
panel.delegate=nil
}
} 
不管有没有弄乱应答器链,我都会得到错误。 委托函数也会按预期调用。

Remove

qlPanel!.delegate = self
qlPanel!.dataSource = self
quickLookButtonAction
中,viewcontroller尚未处于控制状态。等待
beginPreviewPanelControl

currentController
的文档中:

如果不控制预览面板,则不应更改其状态(其委托、数据源等)

从QLPreviewPanel.h中对
-beginPreviewPanelControl:
的注释:

发送到控制预览面板的对象

接收器应在此处设置预览面板(数据源、委托、绑定等)

除去

quickLookButtonAction
中,viewcontroller尚未处于控制状态。等待
beginPreviewPanelControl

currentController
的文档中:

如果不控制预览面板,则不应更改其状态(其委托、数据源等)

从QLPreviewPanel.h中对
-beginPreviewPanelControl:
的注释:

发送到控制预览面板的对象

接收器应在此处设置预览面板(数据源、委托、绑定等)


试过了。它接受控制、开始控制、提供计数(几次)以及提供要显示的文件,空面板显示“微调器”。不幸的是,在没有任何信息的情况下,在崩溃之前的6-7秒内什么都没有发生。也就是说,原始错误消息不再出现,所以我猜这是一个进步……)我试过你的代码,它对我有效。从查找器快速查找有用吗?尝试过了。它接受控制、开始控制、提供计数(几次)以及提供要显示的文件,空面板显示“微调器”。不幸的是,在没有任何信息的情况下,在崩溃之前的6-7秒内什么都没有发生。也就是说,原始错误消息不再出现,所以我猜这是一个进步……)我试过你的代码,它对我有效。从查找器快速查找是否有效?