当用户单击我正在编写的 Finder 同步扩展中的菜单项时,我试图打开一个特定的文件夹。我知道发布了许多类似的问题,因为我已经查看了它们,但没有一个解决方案在我的应用程序中起作用。
这是我要打开的文件夹:
let folder = "/Users/username/some/folder"
这篇文章Show folder's contents in finder using Swift建议执行以下操作:
NSWorkspace.shared().selectFile(nil, inFileViewerRootedAtPath: folder)
当我厌倦了这种方法时,单击菜单项时什么也不做。
我看过很多其他帖子,我也尝试了以下方法,但我还没有任何工作。
NSWorkspace.shared().activateFileViewerSelecting([URL(fileURLWithPath: safeZone, isDirectory: true)])
这导致包含文件夹“some”被打开,而我实际上想要打开的文件夹“文件夹”只是突出显示。
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")
当我厌倦了这种方法时,单击菜单项时什么也不做。
我猜这些方法都不起作用,因为我试图从 Finder Sync Extension 中做到这一点。有谁知道如何解决这个问题?
更新
我从父应用程序测试了这些方法,其中大多数都有效。问题是如何从 Finder 同步扩展中创建这种类型的行为。任何帮助将不胜感激。