代码之家  ›  专栏  ›  技术社区  ›  Lyudmil

如何使用C++在OSX中打开一个打开的文件对话框?

  •  2
  • Lyudmil  · 技术社区  · 16 年前

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

    2 回复  |  直到 11 年前
        1
  •  3
  •   Rob Napier    16 年前

    您有两种选择,一种是快速选择,另一种是良好选择:

    • 快速而简单,使用 Navigation Services 碳框架和 NavCreateGetFileDialog() . 你将很快完成,你将不得不学习几乎没有什么新的东西,但你的代码不会运行在64位(这是苹果正在推动每个人),你将不得不链接碳框架。导航服务是 officially removed 在64位中,通常不推荐继续使用(尽管我希望它在32位中停留一段时间)。

    • 第一次做的时候要多做一点工作(因为你需要学习一些客观的C),但要更有力量和充分的支持,总结一下 NSOpenPanel 在ObjuleC++类中,并将其暴露给C++。这是我的 Wrapping C++ 模式,只是向后。如果你走这条路,遇到麻烦,放下便条,我会尽快在上面贴一篇博客。

        2
  •  3
  •   Yuji    16 年前

    罗布写道:

    不幸的是,没有一个简单的等同于Windows的 GetOpenFileName .

    1. 如果你使用碳:我不认为 NavCreatGetFileDialog 很容易使用…你可以使用 this code 在Carbondev上看看如何使用它。那里的代码返回 CFURLRef . 要获取posix路径,请使用 CFURLGetFileSystemReprestnation .

    2. 也就是说,我建议你用可可。Rob会写一篇如何使用的博客文章 NSOpenPanel 从GLUT: