0

OK、新しいSandBoxガイドラインでは、ファイルを開くには特定のルールに従う必要があることを知っています(NSOpenPanelもちろん、必要な「開く」権限を指定して、ユーザーが開くアクションをトリガーする必要があります)。

ただし、ここに問題があります。

  • 私のアプリケーションにはNSOutlineView、完全なファイルマネージャー(完全なツリー構造)が含まれています。
  • ユーザーはアウトラインビューからファイルを選択できるはずで、アプリがそれを開きます。

アプリが100%サンドボックスに準拠している必要がある場合、どうすればよいですか?既知の回避策はありますか?それも可能ですか?

何か案は?

4

2 に答える 2

0

簡単な答え:それはできません。アプリのUI内にフォルダーの内容を表示するには、まず、開いているパネルを使用するか、Finderからフォルダーをドラッグして、ユーザーにフォルダーを開かせる必要があります。

于 2013-03-01T10:27:42.653 に答える
0

@omzが言ったように、これを行うことができます。アプリケーションは、アプリケーションが表示しているすべてのファイル/フォルダーを含むフォルダーへのアクセス許可を要求する必要があります。個々のファイルのアクセス許可は必要ありませんが、ディレクトリ構造全体を単一のアクセス許可として取得し、それをセキュリティ スコープのブックマークとして保存して、アプリケーションの今後の実行で既にそのアクセス許可を取得できるようにします。

アプリの起動時に、ハード ドライブ全体またはユーザー ディレクトリ全体にアクセスする許可をユーザーに求めることもできます。

私が作成したこのクラスを使用して、すべてを単一の関数呼び出しにまとめることができます。これにより、アクセス許可が保持されるため、最初の実行時にのみ要求されます。https://github.com/leighmcculloch/AppSandboxFileAccess

または、NSOpenPanel を手動で使用する場合は、AppSandboxFileAccessを使用してアクセス許可を取得し、それらのアクセス許可を保持するコードを確認してください。

于 2013-11-23T15:01:29.860 に答える