Как запустить диалог «Выбор приложения» на Mac? - PullRequest
2 голосов
/ 20 мая 2010

Я использую LSOpenItemsWithRole(), чтобы открыть любой файл из моего приложения.Он отлично работает для всех файлов, которые имеют приложение по умолчанию на Mac, но для файлов, которые не могут быть открыты ни одним приложением по умолчанию, этот метод возвращает ошибку kLSApplicationNotFoundErr и ничего не делает.

Для таких случаев я хочумое приложение, чтобы запустить диалоговое окно «Выбор приложения», чтобы конечные пользователи могли выбрать любое приложение, чтобы открыть файл.Это диалоговое окно появляется при каждом двойном щелчке по любому из таких файлов.Есть ли какой-либо прямой вызов API, чтобы сделать то же самое?

Я не хочу использовать вызов Objective C, есть ли способ сделать это с помощью вызовов Carbon API?

Ответы [ 2 ]

4 голосов
/ 20 мая 2010

Вы должны использовать NSOpenPanel, начиная пользователя в папке Applications, и метод делегата panel:shouldEnableURL:, чтобы отфильтровать пути, которые не заканчиваются на .app. Вы можете использовать setAccessoryView: для добавления любых пользовательских параметров в диалог. Это то, что делает Finder, когда вы выбираете опцию «Other ...» при выборе приложения для использования.

1 голос
/ 25 мая 2010

Я думаю, что вы можете сделать это с помощью NavCreateChooseFileDialog, с NavCustomControl для установки исходного местоположения и NavDialogSetFilterTypeIdentifiers для фильтрации не-приложений.(Почему вы не хотите использовать Objective-C? Вы знаете, что вы можете смешивать углерод и какао в одном приложении, верно?)

...