我试过在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