objective-c – 设置QuickLook插件的窗口大小

前端之家收集整理的这篇文章主要介绍了objective-c – 设置QuickLook插件的窗口大小前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在构建一个QuickLook插件.我想改变当用户点击空格键时弹出的窗口的宽度.

我已经读过项目的info.plist文件中有两个键可以自定义高度和宽度.即使我更改了这些值,我也无法将预览窗口的大小调整为所需的值.

我不知道还有什么可以尝试的.任何的想法?

谢谢!

解决方法

以为我会对此有所了解.我没有尝试过以下任何建议,所以没有人会抱有希望.我假设您正在使用生成器回调:
OSStatus (*GeneratePreviewForURL)(
    void *thisInterface,QLPreviewRequestRef preview,CFURLRef url,CFStringRef contentTypeUTI,CFDictionaryRef options
);

在其他任何事情之前,您可以手动检查选项字典参数并验证kQLPreviewPropertyWidthKey和kQLPreviewPropertyHeightKey键确实映射到所需的CFNumber值.

参考这些属性中的每一个,Apple QuickLook编程指南说:

Note that this property is a hint; Quick Look might set the width
automatically for some types of previews. The value must be
encapsulated in a CFNumber object.

(编辑:如果你的预览表示是灵活的,你可能会尝试找到一个预览类型,QuickLook会根据上面的声明来表示你的尺寸提示.只是想一想.)

在QuickLook框架二进制文件上运行nm会显示一些未记录的kQLPreviewProperty–常量以及前面提到的宽度和高度键.引起我注意的是kQLPreviewPropertyAutoSizeKey.回顾Apple关于忽略自动设置大小的提示的声明,这可能很重要吗?遵循QuickLook.framework / Headers / QLBase.h中的约定,您可以尝试声明

extern const CFStringRef kQLPreviewPropertyAutoSizeKey;

然后,您可以尝试将CFNumber 0与选项字典中的属性键相关联.还有其他未记录的密钥,例如kQLPreviewPropertyAttributesKey.

回到你提到的Info.plist,Apple says关于那些键QLPreviewWidth和QLPreviewHeight:

This number gives Quick Look a hint for the width (in points) of
previews. It uses these values if the generator takes too long to
produce the preview.
(emphasis added)

这是有人提出在您的生成器中调用sleep()的可怕建议.但我很困惑为什么Apple会根据生成器延迟来跟踪大小提示. (?)

编辑:还要注意上面的语句说Info.plist提示必须以点(而不是像素)表示,unit取决于用户的屏幕分辨率.

猜你在找的C&C++相关文章