2010-05-20 29 views
2

我正在使用LSOpenItemsWithRole()从我的应用程序中打开任何文件。它适用于在Mac上具有默认应用程序的所有文件,但对于无法使用任何默认应用程序打开的文件,此方法返回错误kLSApplicationNotFoundErr并且什么也不做。如何在Mac上启动“选择应用程序”对话框?

对于这样的情况,我想我的应用程序推出的“选择应用程序”对话框,使最终用户可以选择从那里的任何应用程序中打开该文件。每当通过双击直接打开任何这样的文件时,该对话框就会弹出。是否有任何直接的API调用来做同样的事情?

我不希望使用Objective C的电话,有没有办法使用碳的API调用来做到这一点?

+1

祝豪将推出我选择Mac上的文件对话框... :) – 2010-05-21 05:55:37

+0

我已合并您的两个未注册帐户。您现在应该能够发表评论/编辑而不用发布新答案。 – 2011-04-01 17:45:55

回答

4

您应该使用NSOpenPanel,在Applications文件夹使用中启动用户并使用panel:shouldEnableURL:委托方法过滤掉不以.app结尾的路径。您可以使用setAccessoryView:将任何自定义选项添加到对话框中。这是Finder在选择使用哪个应用程序时单击“其他...”选项时正在执行的操作。

+0

感谢Ken对你的快速回复, 我不想要我们客观的C调用,有没有什么办法可以用Carbon API调用呢? 马尼什 – Manish 2010-05-21 05:48:46

+2

得到了它 - Objective-C的是Mac OS X上的主要开发语言 – 2011-04-01 17:53:42

1

我认为你可以通过使用NavCreateChooseFileDialog来完成它,使用NavCustomControl来设置初始位置和NavDialogSetFilterTypeIdentifiers来过滤掉非应用程序。 (你为什么不希望使用Objective-C的?你知道你可以在一个应用程序混合碳和可可吧?)

相关问题