我正在尝试编写QuickLook生成器.为此,我需要链接到我创建的框架.但是,一旦我链接到所述框架,qlmanage拒绝加载我的插件告诉我:
[ERROR] Can't load plug-in at /path/to/my-ql.qlgenerator: The bundle “my-ql” couldn’t be loaded because it is damaged or missing necessary resources.
Run Code Online (Sandbox Code Playgroud)
我已阅读有关Linking,Frameworks和QuickLook的所有相关教程,但未找到答案.
到目前为止我发现/排除的事情
Contents/Frameworks.@executable_path/../Frameworks此外,在其他应用程序中使用该框架时,一切顺利.我可以理解的唯一可能的解释如下:执行时qlmanage,@executable_path实际指向该二进制文件,因此我的框架永远找不到.如果是这种情况,我如何设置安装路径仍然允许相对于插件的位置?我不想在全球范围内安装我的框架.
编辑
otool -L 在内置的QuickLook插件上产生以下内容:
/System/Library/Frameworks/QuickLook.framework/Versions/A/QuickLook (compatibility version 1.0.0, current version 327.4.0)
/System/Library/Frameworks/ApplicationServices.framework/Versions/A/ApplicationServices (compatibility version 1.0.0, current version 38.0.0)
/System/Library/Frameworks/CoreServices.framework/Versions/A/CoreServices (compatibility version 1.0.0, current version 44.0.0)
/System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation (compatibility version 150.0.0, current version 550.29.0)
/System/Library/Frameworks/Cocoa.framework/Versions/A/Cocoa (compatibility version 1.0.0, current version 15.0.0)
@executable_path/../Frameworks/PESHandler.framework/Versions/A/PESHandler (compatibility version 1.0.0, current …Run Code Online (Sandbox Code Playgroud) 如何在quicklook插件中删除缩略图创建的卷曲图标?
当前图标的屏幕截图: 
我想要的截图: 
GeneratePreviewForURL.m:
#include <CoreFoundation/CoreFoundation.h>
#include <CoreServices/CoreServices.h>
#include <QuickLook/QuickLook.h>
#import "GenerateIcon.h"
OSStatus GeneratePreviewForURL(void *thisInterface, QLPreviewRequestRef preview, CFURLRef url, CFStringRef contentTypeUTI, CFDictionaryRef options);
void CancelPreviewGeneration(void *thisInterface, QLPreviewRequestRef preview);
/* -----------------------------------------------------------------------------
Generate a preview for file
This function's job is to create preview for designated file
----------------------------------------------------------------------------- */
OSStatus GeneratePreviewForURL(void *thisInterface, QLPreviewRequestRef preview, CFURLRef url, CFStringRef contentTypeUTI, CFDictionaryRef options)
{
// To complete your generator please implement the function GeneratePreviewForURL in GeneratePreviewForURL.c
[GenerateIcon generatePreviewWithRef:preview URL:url];
return noErr;
}
void CancelPreviewGeneration(void *thisInterface, …Run Code Online (Sandbox Code Playgroud) 我的应用程序一直在使用QLPreviewController来显示所有类型的文件,在iOS 5.x中,它似乎很好.
现在,在iOS 6.0中,我收到一个错误,它显示了控制器,但有一个恒定的加载指示器,从来没有实际加载任何东西.
日志中的错误是:找不到已加载代理的预览项:<QLPreviewItemProxy:0x8dbf480> - file://localhost/Users/me/Library/Application%20Support/iPhone%20Simulator/6.0/Applications/E6A58F8D-71F3-4C7A -B16E-4BA017E318E5 /文档/温度// Welcome.docx
其他人在iOS 6.0中遇到此问题或其他问题吗?或者有什么尝试的建议?我已经通过iPhone和iPad尝试了它,同时推动控制器并呈现它.
编辑:还注意到有问题的URL(他们说的那个是坏的)不仅以file://而是file:// localhost开头,而原始文件只是以实际路径开始(即:file:///用户).
设置:
OS X 10.8.2
Xcode4.5.2(4G2008a)
基于文档的Cocoa应用程序,带有QuickLook插件
我正在尝试将QuickLook插件添加到基于Document的OS X应用程序中,但QL PlugIn将无法启动.
我的QuickLook PlugIn需要嵌入并链接到我自己创建的两个框架(Called IDEKit和TDAppKit).我已经阅读了这篇关于在QuickLook PlugIns中链接Frameworks的帖子,并按照那里的说明(我将DYLIB_INSTALL_NAME_BASE我的两个框架设置为@loader_path/../Frameworks).
以下是有关我的QuickLook PlugIn构建后的一些相关信息:
% otool -L /Users/itod/Library/Developer/Xcode/DerivedData/Shapes-bqzarhutlkqukverhbjatfvaextg/Build/Products/Debug/Shapes.app/Contents/Library/QuickLook/ShapesQuickLook.qlgenerator/Contents/MacOS/ShapesQuickLook
/Users/itod/Library/Developer/Xcode/DerivedData/Shapes-bqzarhutlkqukverhbjatfvaextg/Build/Products/Debug/Shapes.app/Contents/Library/QuickLook/ShapesQuickLook.qlgenerator/Contents/MacOS/ShapesQuickLook:
/usr/lib/libcrypto.0.9.8.dylib (compatibility version 0.9.8, current version 47.0.0)
@loader_path/../Frameworks/IDEKit.framework/Versions/A/IDEKit (compatibility version 1.0.0, current version 1.0.0)
@loader_path/../Frameworks/TDAppKit.framework/Versions/A/TDAppKit (compatibility version 1.0.0, current version 1.0.0)
/System/Library/Frameworks/QuickLook.framework/Versions/A/QuickLook (compatibility version 1.0.0, current version 555.4.0)
/System/Library/Frameworks/IOKit.framework/Versions/A/IOKit (compatibility version 1.0.0, current version 275.0.0)
/System/Library/Frameworks/Security.framework/Versions/A/Security (compatibility version 1.0.0, current version 55179.0.2)
/System/Library/Frameworks/QuartzCore.framework/Versions/A/QuartzCore (compatibility version 1.2.0, current version …Run Code Online (Sandbox Code Playgroud) 我正在尝试新Xcode 5的快速查看功能,以便能够在调试窗格中看到我的图像,但是我收到的消息是我的图像无法使用快速查看进行预览,它说"无法加载快速查看数据对于"image"",其中"image"是我的变量的名称.
是否因为图像的大小而发生这种情况还是有其他需要考虑的事情?我的图像大小有点大(宽度= 2448,高度= 1224)
谢谢!
我正在使用QLPreviewController来显示PDF文件,每个页面都是杂志的散布.QLPreview的默认缩放是按宽度填充屏幕.在纵向模式下,前后封面(单页)填充屏幕,并在横向上放大以填充宽度,因此它们在底部被切断.这可以.
横向模式下的两页展开也可以缩放以填充宽度,因此可以很好地填充屏幕.但是,当您旋转到纵向模式时,点差会缩小到不可读的大小,并在屏幕底部留下大量空间.
有没有办法更改此视图的默认缩放,以便PDF将始终缩放以填充高度而不是宽度?
我使用QLPreviewView在应用程序中显示quicklook预览。没有沙箱,这很好用,但是一旦将应用程序更改为沙箱,则无法显示预览。
我在控制台中发现错误: QuickLookUIHelpe(20786) deny file-read-data XXX.
我使用了安全范围的书签和com.apple.security.files.user-selected.read-write来授予用户主目录的访问权限,然后:
[allowedURL startAccessingSecurityScopedResource];
self.myPreiviewItem.myURL = fileURL;
self.myQLPreviewView.previewItem = self.myPreiviewItem;
[self.myQLPreviewView refreshPreviewItem];
[allowedURL stopAccessingSecurityScopedResource];
Run Code Online (Sandbox Code Playgroud)
有了这些,我可以删除用户主目录的文件,但 QLPreviewView 无法工作。我不知道这两个场景有什么区别,QLPreviewView 是否需要更多沙箱?
如果我在授权中添加com.apple.security.files.downloads.read-only,可以预览“下载”中的文件,但无法预览用户主目录的其他文件。
根据 Apple 的说法,我们应该新建缩略图或预览扩展,而不是旧的快速查看生成器,后者将被弃用(可能在Big Sur中)。
也不再有Quick Look plug-in project在Xcode中创建的选项。相反,您需要创建一个包含 Quicklook 扩展的应用程序target。
我的问题是:如果没有无用的包装应用程序,我是否可以不再创建独立的Quick Look 扩展(或插件)来预览文件?有没有人尝试过或发现这是否仍然是一个选择?
谢谢。
我正在尝试在Xcode中调试适用于macOS的 Quick Look Extension 目标(预览版) ,尽管我指定了不同的可执行文件 ( ),但每次我在Xcode中运行Quick Look Simulator时,它都会不断启动 Quick Look Simulator ,这很烦人。qlmanage
如何阻止快速查看模拟器与我的预览一起启动qlmanage?我在我的计划中没有看到禁用此功能的方法。
谢谢。
我正在尝试使用.quickLookPreviewiOS 14、macOS 11 macCatalyst 14 中引入的视图修改器,但Value of type 'some View' has no member 'quickLookPreview'每次尝试在 macOS 或 mac Catalyst 目标上使用该修改器时都会收到此错误。在 iOS 上,这工作得很好。在 Mac 上呈现此修改器的正确方法是什么?
import SwiftUI
import QuickLook
struct ContentView: View {
@State var documentUrl: URL?
var body: some View {
NavigationView {
ZStack {
Button("Press Me", action: {
documentUrl = URL(fileURLWithPath: "somelocalfileURLPath")
})
}
.navigationTitle("Open File")
.quickLookPreview($documentUrl)
}
}
}
Run Code Online (Sandbox Code Playgroud)
Xcode 13.1 MacOS 12.1
quicklook ×10
macos ×4
cocoa ×3
objective-c ×3
xcode ×3
frameworks ×2
ios ×2
image ×1
ios6 ×1
mac-catalyst ×1
pdf ×1
preview ×1
sandbox ×1
simulator ×1
swiftui ×1
viewmodifier ×1
xcode5 ×1
zoom ×1