我的應用程序能夠提取.deb文件,但只有當您指定應用程序中按鈕的位置時纔可以。但我希望能夠點擊.deb文件並打開我的應用程序,運行我已有的操作,然後在完成時退出。現在我正在使用NSWorspace來告訴我的應用程序它可以打開.deb文件,但我不知道如何讓它運行我的操作。是否正在使用NSWorkspace做正確的事情?我還需要能夠獲得以字符串格式打開的文件的文件路徑,我似乎無法抵擋這種情況?如何使用NSWorkspace打開文件類型? - 可可
回答
我做了一些測試,這可能也是其他人感興趣的。解決方案是由一個小例子排隊。
在Xcode中創建一個新的Cocoa項目,轉到xib並在窗口中添加一個標籤。我們將用它來證明概念。接下來,一些東西給你的應用程序委託。接口:
#import <Cocoa/Cocoa.h>
@interface fileClickerAppDelegate : NSObject <NSApplicationDelegate> {
NSWindow *window;
NSTextField *fileName;
}
@property (assign) IBOutlet NSWindow *window;
@property (assign) IBOutlet NSTextField *fileName;
@end
實施是非常直截了當:
#import "fileClickerAppDelegate.h"
@implementation fileClickerAppDelegate
@synthesize window;
@synthesize fileName;
- (void)applicationDidFinishLaunching:(NSNotification *)aNotification {
}
- (void)application:(NSApplication *)theApplication openFiles:(NSArray *)filenames {
[fileName setStringValue:[NSString stringWithFormat:@"Wow, even multiple files like %d :-)", [filenames count]]];
}
@end
有一個方法來保持眼睛:
應用:openFiles散。
猜猜它是做什麼的?它接收從點擊桌面或查找器上的項目或將文件拖到圖標上傳遞的文件列表。它將傳遞一個包含文件名的數組,以及路徑UNIX樣式。
我的測試並不需要在應用程序的plist中設置「文檔類型」,或者使用查找器進行花哨的註冊。當然,這可能會增加...
這應該解決你的問題,你可以做任何你想要的.deb文件(我認爲debian軟件包?)。
祝你好運!
生活
PS:只是不要忘記到的NSTextField掛接到GUI控制;-)否則,它會工作,但不會顯示任何內容....
謝謝你太棒了!正是我在找的東西,和.deb我的意思是DEBIAN包。但是,應用程序如何知道我正在打開此文件類型? – drewsdunne 2012-03-04 02:40:21
像應用程序不會顯示在finder中作爲可以打開此文件類型的應用程序。我必須手動搜索並打開它 – drewsdunne 2012-03-04 03:52:20
你是什麼意思的「不顯示在發現者」?如果您所指的是「打開方式...」,您必須手動註冊應用程序類型。 首先,去你的plist並添加一個關鍵的「文檔類型」,這將添加一個數組與項目。小心使用正確的鑰匙!該數組包含文檔類型名稱的鍵,值應爲deb。目前處理程序的排名可以單獨保留(參考文檔)。 – 2012-03-04 08:32:01
請提供更多有關你在做什麼的信息,也許爲什麼它不起作用, G。崩潰轉儲,gdb輸出等。
如果您不告訴我們我在做什麼,很難猜測可能有什麼幫助。
所以基本上我想我的應用程序打開一個文件,當你在你的桌面上單擊它,就好像它是一個單詞文檔文件,並運行我已經提出的一個動作提取它 – drewsdunne 2012-02-16 02:16:32
我沒有任何代碼,我只是想成爲能夠點擊我的文件類型在發現者,並讓它在我的應用程序中打開並運行某個動作,然後關閉 – drewsdunne 2012-03-02 03:34:51
- 1. 如何使用NSWorkspace sharedWorkspace遞歸地打開文件夾?
- 2. 如何用已打開的可執行文件打開文件?
- 3. 打開文件 - 可可
- 4. 在C打開文件++使用可變
- 5. NSWorkspacedidmountNotify /可能通用NSWorkspace
- 6. 指定如何使用PHP打開特定的文件類型
- 7. - [NSWorkspace中openFile:withApplication:]等待打開應用
- 8. 如何根據其mime類型在可可應用程序中打印文件?
- 9. 可可:拖放任何文件類型
- 10. 如何使.LICENSE文件以.txt或類似文件類型打開?
- 11. 如何以人類可讀的方式打開Java .class文件?
- 12. VB.NET - 如何打開給定文件類型的文件?
- 13. 如何使整個調用可打開?
- 14. 如何使用打開文件對話框打開文件
- 15. 用php打開可執行文件
- 16. 檢查用戶是否可以在網站中打開文件類型
- 17. 不能使用dbms_lob.filopen打開的文件,但可以使用UTL_FILE
- 18. 文件類型痛苦 - 可可
- 19. 如何使用PHP打開PowerPoint文件
- 20. 打開引用XSL的XML可打開所有文件
- 21. unresolve nsworkspace迅速3 - 打開URL
- 22. 如何打開和使用.Rda文件
- 23. 在可可類中使用'id'類型
- 24. 如何打開GWT設計器以及打開它的文件類型?
- 25. 打開可可中的共享文件夾中的文件
- 26. TomCat:使用類路徑打開文件
- 27. 如何檢測並自動打開不同類型的文件?
- 28. Android:如何打開未知文件類型
- 29. 如何用jar文件打開文件?
- 30. 使用自定義命令在Mac中打開文件類型
你可能要考慮制定[基於文檔的應用程序](https://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/Documents/Documents.html),它將提供你想要的功能,同時讓你打開一個帶有按鈕。 – ughoavgfhw 2012-02-16 00:27:10