macOS Swift QuickLook Предупреждение: setDelegate и setDataSource вызываются, пока на панели нет контроллера - PullRequest
0 голосов
/ 11 октября 2019

Xcode 11, Swift 5.1

Я получаю пару предупреждений каждый раз, когда открываю файл и просматриваю его с помощью QuickLook (QL). Кажется, он работает нормально, но мне интересно, смогу ли я избавиться от предупреждений.

В предупреждениях говорится:

- [QLPreviewPanel setDelegate:] вызывается во время панелине имеет контроллера - исправьте это, или это скоро повысится.

- [QLPreviewPanel setDataSource:] вызывается, когда на панели нет контроллера - исправьте это, или это скоро повысится.

Iустановить и использовать 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 в табличном представлении с проблемой: «нет контроллера»

Я также попытался настроитьмои методы делегата на моем NSViewController вместо этого, но появляется то же самое предупреждение.

Есть идеи, как решить эту проблему? Или я могу спокойно проигнорировать это?

...