swift - macOS Swift QuickLook 警告:在面板没有控制器时调用 setDelegate 和 setDataSource
问题描述
Xcode 11,斯威夫特 5.1
每次打开文件并使用 QuickLook (QL) 查看时,都会收到一些警告。它似乎工作正常,但我想知道我是否可以摆脱警告。
警告说:
- [QLPreviewPanel setDelegate:] 在面板没有控制器时调用 - 修复此问题,否则此问题将很快引发。
- [QLPreviewPanel setDataSource:] 在面板没有控制器时调用 - 修复此问题,否则此问题将很快引发。
我在这样的设备上设置和使用 QL NSTableCellView
:
import Quartz
class AttachmentCell: NSTableCellView, QLPreviewPanelDataSource, QLPreviewPanelDelegate{
var quickLookItem:URL!
@IBAction func clickPreview(_ sender: Any) {
guard let panel = QLPreviewPanel.shared() else{ return }
panel.delegate = self
panel.dataSource = self
panel.makeKeyAndOrderFront(self)
}
func numberOfPreviewItems(in panel: QLPreviewPanel!) -> Int {
return 1
}
func previewPanel(_ panel: QLPreviewPanel!, previewItemAt index: Int) -> QLPreviewItem! {
quickLookItem = URL(fileURLWithPath: "...").appendingPathExtension(...)
return quickLookItem as QLPreviewItem
}
}
该clickPreview
方法NSButton
在我的表格单元格中。我能找到的最接近的是这个,但我看不出响应者链是如何参与的:QLPreviewPanel in tableview with issue: "has no controller"
我也尝试设置我的委托方法NSViewController
,但出现了相同的警告。
任何想法如何解决这个问题?或者我可以放心地忽略它吗?
解决方案
推荐阅读
- javascript - 如何从本地 XLSX 文件中读取数据并将其保存到对象/数组中
- unity3d - 检测全息透镜上的媒体捕获
- wpf - 风格错误?无法在 Windows10 中的样式中设置背景颜色
- android - 如何在 Android Studio 中修复 'Context.getResources()' 上的空对象引用'
- ios - NSInMemoryStoreType 类型的核心数据忽略实体的约束
- django - Conditional in model
- scala - 检查定义了多少对象属性
- python-2.7 - re.split() 在一个复杂的字符串上
- selenium - send_keys (Keys.ENTER) 上的 selenium webdriver 错误
- r - 如何计算同一区域不同分类的层堆栈中最丰富的像素值(多数票)?