繁体   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