Bor*_*isV 5 cocoa nsurl nsopenpanel appstore-sandbox osx-yosemite
我正在构建沙盒OS X应用程序(OS X 10.10.5,Xcode 6.4)。在执行过程中,我打开NSOpenPanel对象。然后运行下一个代码段:
NSString* s=[@"~" stringByExpandingTildeInPath];
NSOpenPanel* panel = [NSOpenPanel openPanel];
[panel setCanChooseDirectories:YES];
[panel setCanChooseFiles:NO];
NSURL* url=[NSURL fileURLWithPath:s];
if(url){
[panel setDirectoryURL:url];
}
[panel setAllowsMultipleSelection:YES];
[panel beginSheetModalForWindow:[self.outlineView window]completionHandler:^(NSInteger result) {}
Run Code Online (Sandbox Code Playgroud)
我的期望是在目录/Users/xxx/Library/Containers/com.123456.App/中打开面板
相反,该面板在目录/ Users / xxx中打开
实际上已将应用程序构建并部署到目录/Users/xxx/Library/Containers/com.123456.App/Data/
在调试时,我注意到这一点:
if(url){
[panel setDirectoryURL:url];
}
Run Code Online (Sandbox Code Playgroud)
网址包含正确的值:file:///Users/xxx/Library/Containers/com.123456.App/Data/
任何的想法?
NSOpenPanel您想在应用程序的容器中使用 an 是否有原因?该容器用于存储应用程序的内部数据/支持文件(用户通常不需要访问)。NSOpenPanel/NSSavePanel用于用户从自己的文档中选择一个文件/目录,该文件/目录不会位于容器中。
另外,考虑使用NSFileManager URLsForDirectory:inDomains:NSURL 来获取所需路径。
| 归档时间: |
|
| 查看次数: |
707 次 |
| 最近记录: |