8

ユーザーのLibraryフォルダーを宛先フォルダーとしてNSSavePanelを開く必要があります。通常、これを行うには、を入力~/Library/[NSSavePanel beginSheetForDirectory]ます。

アプリケーションがサンドボックス化されていない限り、これは正常に機能します。サンドボックス化されたアプリケーションの場合、これによりNSSavePanel、アプリケーションドキュメント「ボックス」内のフォルダにアクセスしようとします。

/Users/username/Library/実行時にユーザーがわからないため、参照できませんusername。では、ココアでこのパスにリンクするにはどうすればよいですか?

4

3 に答える 3

12

サンドボックスがこれにどのように適合するかはわかりませんが、次を使用してユーザーのライブラリディレクトリを見つけることができます。

NSArray* paths = NSSearchPathForDirectoriesInDomains( NSLibraryDirectory, NSUserDomainMask, YES );
于 2011-11-03T22:39:15.270 に答える
2

これがサンドボックス化されたアプリケーションで機能するかどうかはわかりませんが、これが現在の方法です。これにより、/ User/TheirUserNameが返されます

-(NSString *)homeDirectory
{
    return NSHomeDirectory();
}
于 2011-11-03T22:11:39.867 に答える
0

それはあなたが何を達成しようとしているのかによります。

  • アプリケーションでこの動作が必要な場合は、アプリケーションをMacAppStoreに送信するときに一時的な例外の資格をリクエストできます。しかし遅かれ早かれ、この例外を取り除くための解決策を見つける必要があります。
  • 以前にフォルダーに保存されていたデータにアクセスする場合は、移行戦略~/Library/を定義して、データをサンドボックスに戻すことができます。
于 2011-11-03T18:11:53.320 に答える