gpt4 book ai didi

cocoa - 沙盒应用程序中的 NSOpenPanel 忽略提供的目录 URL

转载 作者:行者123 更新时间:2023-12-03 16:11:48 25 4
gpt4 key购买 nike

我正在构建沙盒 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) {}

我的期望是该面板在目录 /Users/xxx/Library/Containers/com.123456.App/ 中打开

面板会在目录/Users/xxx中打开

应用程序实际上已构建并部署到目录/Users/xxx/Library/Containers/com.123456.App/Data/

在调试时我观察到这一点:

if(url){
[panel setDirectoryURL:url];
}

url包含正确的值:file:///Users/xxx/Library/Containers/com.123456.App/Data/

有什么想法吗?

最佳答案

您想要在应用容器中使用 NSOpenPanel 是否有原因?该容器用于存储应用程序的内部数据/支持文件(用户通常不需要访问)。 NSOpenPanel/NSSavePanel 用于用户从自己的文档中选择文件/目录,该文件/目录不会位于容器中。

此外,请考虑使用NSFileManager URLsForDirectory:inDomains:获取所需路径的 NSURL。

关于cocoa - 沙盒应用程序中的 NSOpenPanel 忽略提供的目录 URL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32380378/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com