我正在构建一个QuickLook插件。我想更改用户点击空格键时弹出的窗口的宽度。
我已经阅读了项目的info.plist文件中的两个键,其中高度和宽度是可自定义的。即使我更改了这些值,也无法将预览窗口的大小设置为所需的大小。
我不知道还能尝试什么。任何的想法?
谢谢!
最佳答案
以为我会对此做一点探讨。我没有尝试以下任何建议,所以没人希望。我假设您正在使用生成器回调:
OSStatus (*GeneratePreviewForURL)(
void *thisInterface,
QLPreviewRequestRef preview,
CFURLRef url,
CFStringRef contentTypeUTI,
CFDictionaryRef options
);
在进行其他操作之前,您可以手动检查
options
字典参数,并验证kQLPreviewPropertyWidthKey
和kQLPreviewPropertyHeightKey
键是否确实映射到所需的CFNumber
值。引用这些属性中的每一个,Apple QuickLook编程指南说:
(编辑:如果您的预览表示形式很灵活,则可以按照上述说明尝试使用QuickLook遵循其尺寸提示的预览类型。
在QuickLook框架二进制文件上运行
nm
会发现一些未记录的kQLPreviewProperty--
常量以及上述的width和height键。引起我注意的一个是kQLPreviewPropertyAutoSizeKey
。回顾苹果关于忽略自动设置尺寸提示的声明,这可能很重要吗?遵循QuickLook.framework/Headers/QLBase.h
中的约定,您可以尝试声明extern const CFStringRef kQLPreviewPropertyAutoSizeKey;
然后,您可以尝试在
options
字典中将CFNumber 0与该属性键相关联。还有其他未记录的注释键,例如kQLPreviewPropertyAttributesKey
。回到您提到的Info.plist,Apple says关于这些键
QLPreviewWidth
和QLPreviewHeight
:这是有人在您的生成器中提出调用sleep()的可怕建议的地方。但是我对于为什么苹果公司会根据发电机延迟来遵循尺寸提示感到困惑。 (?)
编辑:还要注意上面的声明,Info.plist提示必须以点(而不是像素)表示,unit取决于用户的屏幕分辨率。
关于objective-c - 设置QuickLook插件的窗口大小,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/20182887/