如何在目标c中使用NSOpenPanel请求用户文件的权限?

时间:2015-07-27 10:52:14

标签: objective-c macos cocoa appstore-sandbox nsopenpanel

我有一个可可mac应用程序,我想在其中使用NSOpenPanel请求用户的权限。

在我的应用中,我正在从下载文件夹,应用程序缓存和邮件下载中删除一些数据。

当我提交我的应用时,应用因以下原因被拒绝了。

The app only finds files in the ~/Downloads folder. It would be appropriate to have the user grant access to the Home folder.

因此,我使用NSOpenPanel要求用户访问。

我可以用NSOpenPanel打开对话框。

Image

现在,我不知道我应该在允许按钮上做什么。

那是什么意思?

我已启用应用程序沙盒模式启用以进行应用商店分发。

请指导我......

修改

我已经知道我必须使用安全范围书签。

所以在我的projname.entitlements文件中,我添加了一个键com.apple.security.files.bookmarks.app-scope并将其布尔值设置为YES

现在我做了以下代码来保存......

NSURL* url = [panel URL];
                NSData* data = [url bookmarkDataWithOptions:NSURLBookmarkCreationWithSecurityScope includingResourceValuesForKeys:nil relativeToURL:nil error:nil];
                NSLog(@"%@",data);
                if (data)
                {
                    NSUserDefaults* prefs = [NSUserDefaults standardUserDefaults];
                    [prefs setObject:data forKey:@"ExportDirectory"];
                    [prefs synchronize];
                }

现在,当我再次启动我的应用程序时如何访问这些数据?

0 个答案:

没有答案