标签: quicklook

将框架链接到QuickLook插件

我正在尝试编写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的所有相关教程,但未找到答案.

到目前为止我发现/排除的事情

  • 架构:当将Framework包含为32位二进制时,整个链接过程都会出错,所以这似乎不是问题所在.
  • 我已经验证框架被复制到插件的包中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)

cocoa frameworks objective-c dynamic-linking quicklook

6
推荐指数
1
解决办法
985
查看次数

从qlgenerator缩略图中删除弯角

如何在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)

objective-c quicklook

6
推荐指数
2
解决办法
577
查看次数

iOS 6.0 Quicklook QLPreviewController错误:"无法找到已加载代理的预览项"

我的应用程序一直在使用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:///用户).

objective-c quicklook ios qlpreviewcontroller ios6

6
推荐指数
1
解决办法
9300
查看次数

QuickLook PlugIn是"损坏/缺少资源".为什么?

设置:
OS X 10.8.2
Xcode4.5.2(4G2008a)
基于文档的Cocoa应用程序,带有QuickLook插件


问题:

我正在尝试将QuickLook插件添加到基于Document的OS X应用程序中,但QL PlugIn将无法启动.

我的QuickLook PlugIn需要嵌入并链接到我自己创建的两个框架(Called IDEKitTDAppKit).我已经阅读了这篇关于在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 cocoa frameworks quicklook

6
推荐指数
1
解决办法
1182
查看次数

无法加载"图像"的快速查看数据

我正在尝试新Xcode 5的快速查看功能,以便能够在调试窗格中看到我的图像,但是我收到的消息是我的图像无法使用快速查看进行预览,它说"无法加载快速查看数据对于"image"",其中"image"是我的变量的名称.

是否因为图像的大小而发生这种情况还是有其他需要考虑的事情?我的图像大小有点大(宽度= 2448,高度= 1224)

谢谢!

image quicklook ios xcode5

6
推荐指数
2
解决办法
5349
查看次数

更改QLPreviewController中的默认缩放

我正在使用QLPreviewController来显示PDF文件,每个页面都是杂志的散布.QLPreview的默认缩放是按宽度填充屏幕.在纵向模式下,前后封面(单页)填充屏幕,并在横向上放大以填充宽度,因此它们在底部被切断.这可以.

横向模式下的两页展开也可以缩放以填充宽度,因此可以很好地填充屏幕.但是,当您旋转到纵向模式时,点差会缩小到不可读的大小,并在屏幕底部留下大量空间.

有没有办法更改此视图的默认缩放,以便PDF将始终缩放以填充高度而不是宽度?

pdf zoom quicklook qlpreviewcontroller

6
推荐指数
0
解决办法
698
查看次数

QLPreviewView 无法在沙箱中显示 quicklook 预览

我使用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,可以预览“下载”中的文件,但无法预览用户主目录的其他文件。

macos cocoa sandbox quicklook appstore-sandbox

6
推荐指数
1
解决办法
1158
查看次数

是否可以创建独立的 Quick Look 扩展/插件?

根据 Apple 的说法,我们应该新建缩略图预览扩展,而不是旧的快速查看生成器,后者将被弃用(可能在Big Sur中)。

也不再有Quick Look plug-in projectXcode中创建的选项。相反,您需要创建一个包含 Quicklook 扩展的应用程序target

我的问题是:如果没有无用的包装应用程序,我是否可以不再创建独立的Quick Look 扩展(或插件)来预览文件?有没有人尝试过或发现这是否仍然是一个选择?

谢谢。

在此输入图像描述

在此输入图像描述

macos xcode preview quicklook macos-app-extension

6
推荐指数
0
解决办法
848
查看次数

如何避免每次运行时都启动 Quick Look Simulator?

我正在尝试在Xcode中调试适用于macOS的 Quick Look Extension 目标(预览版) ,尽管我指定了不同的可执行文件 ( ),但每次我在Xcode中运行Quick Look Simulator时,它都会不断启动 Quick Look Simulator ,这很烦人。qlmanage

如何阻止快速查看模拟器与我的预览一起启动qlmanage?我在我的计划中没有看到禁用此功能的方法。

谢谢。

在此输入图像描述

macos xcode simulator quicklook qlpreviewcontroller

6
推荐指数
0
解决办法
2770
查看次数

如何在 swiftui 中使用 .quickLookPreview 修饰符

我正在尝试使用.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

macos quicklook swiftui mac-catalyst viewmodifier

6
推荐指数
1
解决办法
1844
查看次数