我試過在Apple.StackExchange.com上詢問這個問題,但他們將我重定向回到這裏。可以運行shell命令的OS X應用程序
我創建了一個自定義file association
與TextEdit
並讓它工作。我現在需要構建一個應用程序,使用我的自定義file association
並運行shell commands
以打開非專有應用程序(如TextEdit,VLC等)。這個應用程序將從網上下載。
我該如何做到這一切?它可以在任何語言,但最好Objective-C
我試過在Apple.StackExchange.com上詢問這個問題,但他們將我重定向回到這裏。可以運行shell命令的OS X應用程序
我創建了一個自定義file association
與TextEdit
並讓它工作。我現在需要構建一個應用程序,使用我的自定義file association
並運行shell commands
以打開非專有應用程序(如TextEdit,VLC等)。這個應用程序將從網上下載。
我該如何做到這一切?它可以在任何語言,但最好Objective-C
看起來有一種更好的方式來做到這一點
[[NSWorkspace sharedWorkspace] openFile:@"<FULL_PATH_TO_YOUR_ASSOSIATED_FILE>"];
從documentation爲openFile
打開指定的文件中使用默認指定與其類型相關的應用程序 。
那麼優雅的方式做同樣的事情如下:
檢查open
命令的您的系統上像whereis open
和使用中發現地點爲可執行文件的位置在代碼替換下面
NSTask *task = [[NSTask alloc] init];
[task setLaunchPath:@"<FULL_PATH_TO_OPEN_COMMAND>"];
[task setArguments:@[ @"<FULL_PATH_TO_YOUR_ASSOSIATED_FILE>"]];
[task launch];
該任務是更加優雅的方式應用程序可以輕鬆地監視它/保持活着,而它還活着 - 只要腳本運行,操作系統想保持運行 – 2014-10-10 15:36:51
我可以使用NSTask運行我的shell腳本,然後我使用NSWorkspace來監視應用程序的運行。謝謝! – 2014-10-10 15:51:11
您是否檢查過'open'shell命令? https://developer.apple.com/library/mac/documentation/Darwin/Reference/ManPages/man1/open.1.html –
deimus
2014-10-10 14:54:19
@deimus是的,這個命令是完美的。我需要構建一個可以運行該命令的應用程序。我找不到讓Cocoa應用程序像這樣運行shell命令的方法。應用程序需要保持打開狀態,直到用戶關閉它爲止,因爲我還將執行其他邏輯。 – 2014-10-10 14:58:35
添加一個答案,檢查那裏 – deimus 2014-10-10 15:00:34