Swift Can';尝试预览文件时,无法使QuickLook正常工作
我正在使用故事板编写一个带有Swift的macOS应用程序。我有一个NSTableView,其中包含我希望用户能够通过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
-[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秒内什么都没有发生。也就是说,原始错误消息不再出现,所以我猜这是一个进步……)我试过你的代码,它对我有效。从查找器快速查找是否有效?