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

8nuwlpux  于 2023-03-20  发布在  其他
关注(0)|答案(3)|浏览(163)

我正在使用OpenGL和C开发一个应用程序,它可以解析文件中的一些结构化输入并以图形方式显示。我希望在加载应用程序时启动“打开文件”对话框,以允许用户选择他们想要显示的文件。我无法在Web上找到我需要的内容。有没有办法在C中实现这一点?如果有,如何实现?先谢谢您。

hof1towb

hof1towb1#

你有两个选择一个快一个好

  • 使用Carbon的Navigation Services框架和NavCreateGetFileDialog()可以快速而简单地完成,而且几乎不需要学习任何新内容,但是您的代码不能在64位上运行(苹果正在推动每个人),你必须链接碳框架。导航服务在64位,而且在未来通常会被弃用(尽管我预计它会在32位中徘徊相当一段时间)。
  • 第一次做的时候需要多做一点工作(因为你需要学习一些Objective-C),但是功能要强大得多,支持也要全面得多,把NSOpenPanel Package 在一个Objective-C类中,然后把它暴露给你的C。这是我的Wrapping C++模式,只是倒过来。如果你这样做遇到麻烦,留下一个便条,我会试着加快在上面发布博客条目的速度。
zpjtge22

zpjtge222#

为了补充Rob所写的:
不幸的是,没有简单的等效于Windows的GetOpenFileName
1.如果使用 Carbon :我真的不认为NavCreatGetFileDialog很容易使用...你可以在CarbonDev中使用this code来看看如何使用它。那里的代码返回CFURLRef。要获得POSIX路径,请使用CFURLGetFileSystemReprestnation。
1.话虽如此,我还是建议你使用可可。Rob将从GLUT写一篇如何使用NSOpenPanel的博客文章:)

q3qa4bjr

q3qa4bjr3#

在macOS上打开文件对话框的最佳方法可能是使用AppKit框架,它是可可API的一部分。
你需要AppKit中的NSOpenPanel类,并创建适当的Objective-C++ Package ,以便在普通的C++代码中使用它。这对于一个没有太多macOS开发经验的人来说不是一件容易的事情。幸运的是,现在已经没有必要了,因为GitHub中已经有了现有的 Package 器。例如,请查看

相关问题