簡體   English   中英

對於非ASCII文件名,帶有文件URL的NSURL子類在QuickLook中不起作用?

[英]NSURL subclass, with file URL, doesn't work in QuickLook, for non-ASCII filenames?

這有很多方面,但據我所知,它們都是重現問題的必要條件。

我做了一個瑣碎的NSURL子類,如下所示:

class URL2: NSURL { }

我用它制作了一個文件URL:

let f = URL2(fileURLWithPath: "/Users/me/Downloads/ついて.pdf")

然后,我嘗試從previewPanel(panel:previewItemAtIndex index:)返回它。

結果:我在QLPreviewPanel中得到一個通用文件圖標(但是它具有正確的文件名)。

奇怪的是,如果我以不同的方式進行操作,那么它會起作用:

  • 如果我使用普通的NSURL(fileURLWithPath: "/Users/me/Downloads/ついて.pdf") ,它將正確顯示文件內容。
  • 如果我使用僅ASCII的文件名,它將正確顯示文件內容。
  • 如果我對URL2做其他事情(例如某些NSFileManager操作),它將找到文件。

在這種情況下,我會怎么做而導致QuickLook對我的NSURL子類不滿意?

子類化NSURL(或NSURLRequest)通常是瘋狂的途徑,這在很大程度上(我認為)要感謝OSX的各個部分中對NSXPC的大量使用。

我建議改為使用帶有關聯對象的類別。 這樣可以避免遇到極端情況,同時仍然允許您向​​NSURL對象添加自定義方法和屬性。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM