如何选择默认文件以在 NSOpenPanel 中打开?

Posted

技术标签:

【中文标题】如何选择默认文件以在 NSOpenPanel 中打开?【英文标题】:How can I have a default file selected for opening in an NSOpenPanel? 【发布时间】:2012-05-14 20:48:02 【问题描述】:

旧的方式是[ MyPanel runModalForDirectory: thedir file: thefile ],面板会在指定目录打开,指定文件已经被选中。

这已被弃用;我们现在应该使用 runModal,但我看不到任何设置所选文件名的方法。我试过将它包含在 setDirectoryURL 的字符串中,我试过 setRepresentedFilename,我试过 setNameFieldStringValue ......显然有可能以某种方式做到这一点,但我对互联网搜索词没有任何运气我已经选择,也没有 Apple 的文档....

如果您能提供帮助,谢谢!

【问题讨论】:

【参考方案1】:

文档列出了 10.6 及更高版本中可用的 setDirectoryURL:setNameFieldStringValue:

NSString *defaultDirectoryPath, *defaultName;
NSOpenPanel *openPanel;
...
[openPanel setNameFieldStringValue:defaultName];
[openPanel setDirectoryURL:[NSURL fileURLWithPath:defaultDirectoryPath]];
[openPanel runModal];

【讨论】:

谢谢迈克尔,但正如我所说,我尝试了 setDirectoryUrl,虽然可能不正确。它会打开选​​择了 directory 的面板,但不会打开文件,即使我将它附加到路径。我想要的是打开对话框显示我打开的最后一个文件已经被选中,这样如果我点击一次向下箭头,它就会移动到下一个文件(这样我就可以连续打开文件而不会丢失我的位置) .我还没有找到如何使用 runModal 来做到这一点,但这显然是可能的,因为 Apple 应用程序包含该功能.... 您是否尝试过将setNameFieldStringValue:setDirectoryURL: 结合使用?从文档中并不完全清楚,但可以将 将名称字段中的文件名设置为指定值。 的含义接近您所追求的行为。现在不是@我的 mac,所以我无法测试。 我没有同时尝试这两个,现在我看到你在上面的帖子中包含了 setNameFieldStringValue,我之前没有注意到。但是我自己尝试过 setNameFieldStringValue 并没有看到行为改变。我现在将两者一起尝试... naaaw,我已经尝试了一些组合,但它没有发生...... @Photovore 我很想知道组合的功能是否符合我的假设! 没有按照我的意愿去做,抱歉。但是感谢您的尝试!另外,您的建议很可能是这样做的方法,但也许我用错了....现在,我会坚持使用已弃用的方法!...

以上是关于如何选择默认文件以在 NSOpenPanel 中打开?的主要内容,如果未能解决你的问题,请参考以下文章

NSOpenPanel-Object C组件-打开对话框-选择文件/文件夹获得路径

记住用户选择的文件夹并在 Sandbox 下通过 NSOpenPanel 重新打开它

在eclipse中打jar包

使用 Xcode 4.5.1 调试时 NSOpenPanel 崩溃

NSOpenPanel 新文档按钮不起作用

NSOpenPanel文件URL格式