Как открыть диалоговое окно «Открыть файл» в OS X с помощью C ++? - PullRequest
2 голосов
/ 20 июня 2010

Я работаю над приложением, использующим OpenGL и C ++, которое анализирует некоторые структурированные входные данные из файла и отображает их графически.Я хотел бы открыть диалоговое окно «Открыть файл», когда приложение загружается, чтобы позволить пользователю выбрать файл, который он хочет отобразить.Я не смог найти то, что мне нужно в Интернете.Есть ли способ достичь этого в C ++?Если так, то как?Заранее спасибо.

Ответы [ 2 ]

3 голосов
/ 20 июня 2010

Чтобы добавить к тому, что Роб написал:

К сожалению, простого эквивалента Windows GetOpenFileName нет.

  1. Если вы используете Carbon: я не думаю, что NavCreatGetFileDialog прост в использовании ... вы можете использовать этот код в CarbonDev, чтобы увидеть, какиспользовать это.Код там возвращает CFURLRef.Чтобы получить путь POSIX, используйте CFURLGetFileSystemReprestnation .

  2. При этом я рекомендую вам использовать Какао.Роб напишет в блоге, как использовать NSOpenPanel из GLUT:)

3 голосов
/ 20 июня 2010

У вас есть два варианта: быстрый и хороший:

  • Быстрый и довольно простой, используйте Navigation Services Framework от Carbon и NavCreateGetFileDialog().Вы быстро закончите, и вам не придется изучать почти ничего нового, но ваш код не будет работать в 64-битном режиме (к которому Apple подталкивает всех), и вам придется связывать инфраструктуру Carbon.Navigation Services официально официально удален в 64-битной среде и, как правило, не рекомендуется в будущем (хотя я ожидаю, что он будет оставаться в 32-битной версии довольно долго).* Немного больше работы в первый раз, когда вы это сделаете (потому что вам нужно выучить некоторый Objective-C), но гораздо более мощный и полностью поддерживаемый, оберните NSOpenPanel в классе Objective-C ++ и представьте этоваш C ++.Это мой шаблон Wrapping C ++ , только назад.Если вы пойдете этим путем и у вас возникнут проблемы, напишите заметку, и я постараюсь ускорить размещение в ней записи в блоге.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...