objective-c - 确定 Cocoa 中沙箱消息的目的地

标签 objective-c cocoa desktop sandbox nsworkspace

所以我刚刚将沙盒添加到我的一款产品中。它功能齐全,只是工作流程的最后一步是设置桌面。它通过 NSWorkspace 来完成此操作。当我打电话时

[[NSWorkspace sharedWorkspace] setDesktopImageURL:[NSURL fileURLWithPath:imagePath]
                                        forScreen:screen
                                          options:nil
                                            error:&error];

我收到以下错误:

*** attempt to post distributed notification 'com.apple.desktop' thwarted by sandboxing.

是的,所以我需要一个临时异常,如下所示:

<key>com.apple.security.temporary-exception.apple-events</key>
<array>
    <string>XXXXX</string>
</array>

所以最终我需要弄清楚 XXXXX 中发生了什么,对吗?什么处理桌面设置?更一般地说,是否有一种简单的方法来确定消息的目标包?

最佳答案

我遇到了同样的问题,但我找到了不同的解决方法。通过启用“允许日历数据访问”权限,可以通过 NSWorkspace 设置新壁纸。

我知道这是一个非常奇怪的解决方法,我不知道它是否是面向 future 的(Apple 可能会在未来版本中阻止它)。在撰写本文时它有效,我认为值得与下一个遇到此问题的人分享。

关于objective-c - 确定 Cocoa 中沙箱消息的目的地,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6971151/

相关文章:

linux - 在 Linux 中以编程方式设置自定义文件夹/目录图标

java - 打开目录

c++ - 如何在离开(关闭或失去焦点)窗口之前显示模态确认消息?

使用 md5 key 的 iOS 3DES 加密

iphone - JSON 框架中的重复类有问题吗?

objective-c - CGContext 删除错误

ios - NSOperation 中委托(delegate)的使用

macos - 当另一个 Cocoa 应用程序终止时,一个 Cocoa 应用程序会收到通知

swift - 无法让 NSCollectionView NSCollectionViewItem 工作

cocoa - 新的 "iOS data protection APIs"是什么?