如何使用C ++在OS X中打开“打开文件”对话框?

时间:2010-06-20 00:37:08

标签: c++ user-interface macos

我正在使用OpenGL和C ++开发一个应用程序,它从文件中解析一些结构化输入并以图形方式显示它。我想在加载应用程序时启动“打开文件”对话框,以允许用户选择他们想要显示的文件。我无法在网上找到我需要的东西。有没有办法在C ++中实现这一目标?如果是这样,怎么样?提前谢谢。

2 个答案:

答案 0 :(得分:3)

你有两个选择,一个快速选择,一个好选择:

  • 快速而简单,使用Carbon和NavCreateGetFileDialog()的{​​{3}}框架。你会很快完成,你将不得不学习几乎没有什么新东西,但你的代码不会以64位运行(Apple正在推动所有人走向),你必须链接Carbon框架。导航服务在64位中为Navigation Services,并且通常会被弃用(尽管我预计它会在32位内停留很长一段时间)。

  • 第一次这样做时会有更多的工作(因为你需要学习一些Objective-C),但更强大和完全支持,在Objective-C ++类中包装officially removed将它公开给你的C ++。这是我的NSOpenPanel模式,只是向后。如果你走这条路并遇到麻烦,请留言,我会尝试加快在其上发布博客条目。

答案 1 :(得分:3)

添加Rob写的内容:

不幸的是,没有简单的等价于Windows的GetOpenFileName

  1. 如果你使用Carbon:我真的不认为NavCreatGetFileDialog易于使用......你可以在CarbonDev中使用this code来查看如何使用它。那里的代码返回CFURLRef。要获取POSIX路径,请使用CFURLGetFileSystemReprestnation

  2. 那就是说,我建议你使用Cocoa。 Rob将撰写一篇博文,介绍如何使用GLUT中的NSOpenPanel:)