使用 QLPreviewingController.preparePreviewOfFile 预览时设置 QuickLook window 大小

Set QuickLook window size when previewing with QLPreviewingController.preparePreviewOfFile

我正在为 macOS 编写一个 QuickLook 插件并且一切正常,除了我无法以编程方式设置预览的 window 大小。

它以 800x600 开头,无论我在代码中的 XIB and/or 中做什么,在调用 preparePreviewOfFilecompletionHandler 之后 and/or 之前。

其他文件类型,由默认插件处理,调整预览 window 大小以适应文件内容。我也想这么做。

预览 window 可由用户调整大小,一旦调整大小,当我在 Finder 中 select 另一个文件时保持新大小,如果我关闭它并重新打开它会返回到 800x600它在我的插件处理的文件上。

我错过了什么?

QLPreviewingController 应设置其 preferredContentSize 以便 window 可以相应调整大小。

https://developer.apple.com/documentation/appkit/nsviewcontroller/1434409-preferredcontentsize

接受的答案,设置 preferredContentSize,似乎破坏了 macOS Catalina 中所有子视图的自动调整大小。设置后,当用户手动调整大小或进入全屏时,内容将不再跟踪预览window大小。

看我的问题

所以我想在答案中添加以下内容:没有已知的方法可以在不破坏自动调整大小的情况下在 macOS Catalina 上执行此操作,但它在 macOS Big Sur 上运行良好。 preferredContentSize 行应该包裹在 #available(macOS 11, *) 守卫中。