Wenn Sie einen anderen Titel anders als die lastPathComponent von Ihrer URL angezeigt werden müssen, können Sie QLPreviewItem Unterklasse und einen eigenen Titel bieten die optionale Eigenschaft Implementierung:
Instanz Eigentum Erklärung:
var previewItemTitle: String? { get }
Der Titel, der für das Vorschauelement angezeigt werden soll.
Wenn Sie nicht über eine Getter-Methode für diese Eigenschaft implementieren, oder wenn Ihre Methode gibt nil zurück, untersucht Info die URL oder Inhalt des Elements angesehen wird, um einen passenden Titel für die Anzeige auf den Benutzer zu bestimmen. Geben Sie einen Nicht-Null-Wert für diese Eigenschaft zurück, um einen benutzerdefinierten Titel bereitzustellen.
protocol QLPreviewItem : NSObjectProtocol
Beschreibung
Das QLPreviewItem Protokoll definiert Eigenschaften, die Sie implementieren, um Ihre Anwendung Inhalt sichtbar in einer Info Vorschau (QLPreviewController in iOS oder QLPreviewPanel in macOS) zu machen. Die Methoden in diesem Protokoll werden auch als Kategorie in der NSURL-Klasse deklariert. Als Ergebnis können Sie NSURL-Objekte direkt als Vorschau Elemente verwenden - sofern Sie die Standardtitel dieser Elemente verwenden möchten. Ein Standardtitel ist die letzte Pfadkomponente der URL eines Elements. Wenn Sie Ihre eigenen Vorschau Artikel Titel liefern möchten, erstellen Sie Ihre eigene Vorschau Artikel Objekte, die dieses Protokoll übernehmen.
Erste-Subklassen QLPreviewItem:
import UIKit
import QuickLook
class PreviewItem: NSObject, QLPreviewItem {
var previewItemURL: URL?
var previewItemTitle: String?
}
Dann in Ihrem Controller zurückgeben Sie die QLPreviewItem statt der URL:
import UIKit
import QuickLook
class ViewController: UIViewController, QLPreviewControllerDelegate, QLPreviewControllerDataSource {
let item = PreviewItem()
override func viewDidLoad() {
super.viewDidLoad()
item.previewItemTitle = "Custom Title"
item.previewItemURL = Bundle.main.url(forResource: "your file", withExtension: "ext")
}
override func viewDidAppear(_ animated: Bool) {
super.viewDidAppear(animated)
quickLook()
}
func numberOfPreviewItems(in controller: QLPreviewController) -> Int {
return 1
}
func quickLook() {
let preview = QLPreviewController()
preview.delegate = self
preview.dataSource = self
preview.currentPreviewItemIndex = 0
present(preview, animated: true)
}
func previewController(_ controller: QLPreviewController, previewItemAt index: Int) -> QLPreviewItem {
return item
}
}
Wie kann ich die URL umbenennen, ohne die Datei zu umbenennen? – derdida