2010-05-20 84 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的?你知道你可以在一個應用程序混合碳和可可吧?)

相關問題