如何从Finder Sync扩展插件使用Xcode中的Swift通过Finder打开文件夹

如何从Finder Sync扩展插件使用Xcode中的Swift通过Finder打开文件夹,swift,xcode,macos,cocoa,findersync,Swift,Xcode,Macos,Cocoa,Findersync,当用户单击我正在编写的Finder Sync扩展中的菜单项时,我正试图打开一个特定文件夹。我知道有许多类似的问题张贴,因为我已经看过他们,但没有一个解决方案是在我的应用程序工作 这是我试图打开的文件夹: let folder = "/Users/username/some/folder" 这篇文章建议你做以下几点: NSWorkspace.shared().selectFile(nil, inFileViewerRootedAtPath: folder) 当我厌倦了这种方法时,单击菜单项时它

当用户单击我正在编写的Finder Sync扩展中的菜单项时,我正试图打开一个特定文件夹。我知道有许多类似的问题张贴,因为我已经看过他们,但没有一个解决方案是在我的应用程序工作

这是我试图打开的文件夹:

let folder = "/Users/username/some/folder"
这篇文章建议你做以下几点:

NSWorkspace.shared().selectFile(nil, inFileViewerRootedAtPath: folder)
当我厌倦了这种方法时,单击菜单项时它什么也不做

NSWorkspace.shared().open(URL(fileURLWithPath: safeZone, isDirectory: true))
我看过很多其他的帖子,我也尝试过以下方法,但我还没有找到任何有效的方法

NSWorkspace.shared().activateFileViewerSelecting([URL(fileURLWithPath: safeZone, isDirectory: true)])
这将导致包含“some”的文件夹被打开,而我实际上想要打开的文件夹“folder”被高亮显示

NSWorkspace.shared().openFile(safeZone)
当我厌倦了这种方法时,单击菜单项时它什么也不做

NSWorkspace.shared().open(URL(fileURLWithPath: safeZone, isDirectory: true))
当我尝试此方法时,我从Finder收到一条消息,说明:

The application “MyAppFileSyncExtension” does not have permission to open “folder.”
有没有办法通过Xcode赋予扩展更多权限?我知道我的父应用程序可以读取和写入此文件夹没有问题

NSWorkspace.shared().openFile(folder, withApplication: "Finder")
当我厌倦了这种方法时,单击菜单项时它什么也不做

NSWorkspace.shared().open(URL(fileURLWithPath: safeZone, isDirectory: true))
我猜这些方法都不起作用,因为我正试图从Finder Sync扩展中实现这一点。有人知道如何回避这个问题吗

更新


我从父应用程序测试了这些方法,其中大多数都有效。问题是如何从Finder Sync扩展创建这种类型的行为。非常感谢您的帮助。

您是否设置了适当的权限,以便分机可以访问文件夹?@I'L'I我不这么认为。我该怎么做?我有一个现有的应用程序,它可以访问文件夹,并向现有的应用程序添加带有默认设置的Finder Sync扩展。我如何设置权限,以便扩展可以与父应用程序具有相同的访问权限?您是否设置了适当的权限,以便扩展可以访问文件夹?@I'L'I我不这么认为。我该怎么做?我有一个现有的应用程序,它可以访问文件夹,并向现有的应用程序添加带有默认设置的Finder Sync扩展。如何设置权限,使扩展可以与父应用程序具有相同的访问权限?