gpt4 book ai didi

objective-c - 从桌面加载 NSImage 在 cocoa 应用程序中为零

转载 作者:行者123 更新时间:2023-12-03 17:46:55 27 4
gpt4 key购买 nike

您好,我正在尝试加载位于桌面的图像。

NSURL *imageURL = [[NSWorkspace sharedWorkspace] desktopImageURLForScreen:[NSScreen mainScreen]];
NSLog(@"%@",imageURL);
NSImage *testImage = [[NSImage alloc] initWithContentsOfURL:imageURL];
NSLog(@"%@",testImage);
[self.desktopView setImage:testImage];

测试图像日志(null)

上面的代码我正在使用,但测试图像变得为零。

有什么建议吗?

提前致谢!

最佳答案

您可能在功能中启用了应用程序沙箱(我相信默认情况下已启用)。启用它后,如果没有用户交互(即 NSOpenPanelNSSavePanel ),您将无法访问应用程序容器(或某些其他指定位置)之外的文件。

文件系统编程指南:https://developer.apple.com/library/archive/documentation/FileManagement/Conceptual/FileSystemProgrammingGuide/FileSystemOverview/FileSystemOverview.html

应用程序沙箱文档位于:https://developer.apple.com/library/archive/documentation/Security/Conceptual/AppSandboxDesignGuide/AppSandboxInDepth/AppSandboxInDepth.html

如果您想禁用应用程序沙箱,可以通过单击项目文件 > 目标名称、选择功能选项卡并关闭应用程序沙箱来关闭它。

编辑:

您将需要使用安全范围的书签来进行持久资源访问。我不熟悉您评论中的应用程序,但我猜测它们会在首次运行时提示用户访问。

此处的文档:

https://developer.apple.com/library/archive/documentation/Security/Conceptual/AppSandboxDesignGuide/AppSandboxInDepth/AppSandboxInDepth.html#//apple_ref/doc/uid/TP40011183-CH3-SW16

https://developer.apple.com/library/archive/documentation/Miscellaneous/Reference/EntitlementKeyReference/Chapters/EnablingAppSandbox.html#//apple_ref/doc/uid/TP40011195-CH4-SW18

关于objective-c - 从桌面加载 NSImage 在 cocoa 应用程序中为零,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52542747/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com