Mac App Sandboxed:如何导入没有扩展名、没有图标的文件
Posted
技术标签:
【中文标题】Mac App Sandboxed:如何导入没有扩展名、没有图标的文件【英文标题】:Mac App Sandboxed: How to import file with no extension, no icon 【发布时间】:2014-03-07 02:41:58 【问题描述】:我需要在文件夹中导入数据。数据来自控制科学仪器的 linux 机器,供应商将每次测量的结果放在一个文件夹中,文件夹内有两个文件,一个名为“参数”,另一个名为“数据”。我的用户会将文件夹复制到他们的 Mac 并将数据导入我的程序。如果我的应用程序没有沙盒化,我可以毫无问题地获取文件夹的内容,并将参数和数据文件读入我的应用程序。当我的应用程序被沙盒化时,NSOpenPanel 告诉我文件夹内没有 url。
NSArray *files = [panel URLs];
在应该有两个对象时返回一个包含零个对象的数组。如何使这些文件对我的沙盒应用可见?
【问题讨论】:
【参考方案1】:为了方便您的用户,请尝试按以下方式使用“打开面板”。这限制他们选择一个目录(而不是两个文件):
NSOpenPanel *panel = [NSOpenPanel openPanel];
[panel setCanChooseDirectories:YES];
[panel setCanChooseFiles:NO];
[panel setAllowsMultipleSelection:NO];
// don't set anything with setAllowedFileTypes:
然后您将收到零个或一个指向该目录的 URL(取决于用户是否按下了确定或取消)。然后将此 URL 与NSDirectoryEnumerator
或NSFileManager 提供的类似内容一起使用以获取目录中的文件。
还要确保使用以下方法之一以适当(不推荐)的方式运行面板:
– beginSheetModalForWindow:completionHandler:
– beginWithCompletionHandler:
– runModal
【讨论】:
以上是关于Mac App Sandboxed:如何导入没有扩展名、没有图标的文件的主要内容,如果未能解决你的问题,请参考以下文章
Jenkins: because the document's frame is sandboxed and the 'allow-scripts' permission
如果自动扩缩功能无法创建新实例,App Engine 请求会发生啥情况?
如何在 OSX 上为 Python 应用程序启用 App 沙箱(Python 应用程序针对 Mac App Store)