4

当用户单击我正在编写的 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 同步扩展中创建这种类型的行为。任何帮助将不胜感激。

4

0 回答 0