Jeśli chcesz wyświetlić inny tytuł innego niż lastPathComponent z adresu URL, można podklasy QLPreviewItem i podać swój własny tytuł wykonawczy opcjonalną właściwość:
Instance deklaracji właściwości:
var previewItemTitle: String? { get }
Tytuł do wyświetlenia dla elementu podglądu.
Jeśli nie zaimplementować metodę getter dla tej właściwości, albo jeśli metoda zwraca nil, QuickLook analizuje URL lub treści pozycji ich stronę, aby określić odpowiedni tytuł do wyświetlania dla użytkownika . Zwróć wartość niezerową dla tej właściwości, aby podać niestandardowy tytuł .
protocol QLPreviewItem : NSObjectProtocol
Opis Protokół
QLPreviewItem określa właściwości, które implementują aby zawartość swojej aplikacji za widoczny w QuickLook podglądu (QLPreviewController w iOS lub QLPreviewPanel MacOS). Metody w tym protokole są również zadeklarowane jako kategoria w klasie NSURL. W związku z tym można używać obiektów NSURL bezpośrednio jako elementów podglądu - pod warunkiem, że mają być używane domyślne tytuły tych elementów. Domyślny tytuł to ostatni komponent ścieżki adresu URL elementu. Jeśli chcesz dostarczyć własne tytuły elementów podglądu, stwórz własne obiekty podglądu, które adoptują ten protokół.
Pierwszy Podklasa QLPreviewItem:
import UIKit
import QuickLook
class PreviewItem: NSObject, QLPreviewItem {
var previewItemURL: URL?
var previewItemTitle: String?
}
Następnie w kontroler będzie zwrot QLPreviewItem zamiast adresu 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
}
}
Jak mogę zmienić nazwę URL bez zmiany nazwy pliku? – derdida