在Dock上时,使用AppleScript为应用程序添加自定义菜单项

时间:2010-11-26 09:39:54

标签: applescript contextmenu menuitem dock

您可以编写AppleScript并将其另存为应用程序,然后将其放在Dock上。但是可以向它添加菜单项,以便在二次点击时显示这些菜单项吗?如果是,如何定义它们并定义它们的动作?

由于

3 个答案:

答案 0 :(得分:0)

你不能用Applescript做到这一点。将Applescript保存为应用程序实际上只会消除需要脚本编辑器运行脚本的要求以及其他一些小的更改。最后,它仍然只是一个脚本。如果您需要更多功能,那么您应该考虑使用Xcode创建基于Applescript的应用程序(以前称为Applescript Studio)。

答案 1 :(得分:0)

使用Xcode,执行以下操作:

  1. NIB文件 - > MainMenu.xib(双击)。这将打开界面构建器。
  2. file - >新... - >可可 - > MAINMENU
  3. 将您的mainMenu的dockMenu链接到“文件的所有者”(第二次单击mainMenu - >将dockMenu-circle拖放到文件的所有者)
  4. 双击mainMenu并编辑项目名称。将项目“发送操作”链接到您要执行的操作(与项目符号3中的方式相同)。
  5. 子弹4有点不稳定,因为我不记得它是怎么回事。我会给你一个进一步阅读的链接:http://cocoadevcentral.com/articles/000036.php。但是,将它与applescript链接应该没有任何问题。

    如果你能发布一个有效的解决方案(当你让它工作时,我的意思是,我会很感激)。

    BR, Juha

答案 2 :(得分:0)

我挖出了我是怎么做到的。这适用于leopard和old:它是shell命令的cocoa app包装器。对于雪豹,您可以直接使用苹果脚本。

  1. xcode - >新项目...... - >申请 - >可可应用
  2. (右窗格)NIB文件 - > (右键单击)添加 - >新文件 - >可可 - > Objective C class - > “runScript.m”
  3. 修改runScript.h(右窗格):
  4. #import Cocoa/Cocoa.h // add gt and lt (does not show here)
    @interface runScript : NSObject {}
    -(IBAction)runHello:(id)sender;
    @end
    1. 修改runScript.m:
    2. #import "runScript.h"
      @implementation runScript
      -(IBAction)runHello:(id)sender
      {
          NSTask *script=[[NSTask alloc] init];
          [script setLaunchPath:@"~/Desktop/hello.app/Contents/MacOS/hello"];
          [script launch];
      }
      1. NIB文件 - > MainMenu.xib(双击打开界面构建器)
      2. 界面构建器 - >工具 - > library(objects-page) - > library-cocoa-“objects& controllers” - >对象(将此蓝色立方体拖动并显示到Main Menu.xib窗口)
      3. 选择对象(您刚添加的对象) - >界面构建器 - >工具 - >身份检查员 - > class - >从下拉列表中选择runScript(这是您在2中创建的对象c类)
      4. MainMenu.xib - > (双击)MainMenu - > (删除额外+)将“file-> new”重命名为file-> runHello
      5. 右键单击runHello - >将“Actions:runHello”旁边的圆圈拖放到“运行脚本” - > runHello(在MainMenu.xib中)
      6. 在Mainmenu.xib窗口中:右键单击“文件所有者” - >将dockMenu拖放到MainMenu旁边的拖放圈
      7. 返回xcode - >构建 - >构建和去 - >全部保存
      8. 现在,当右键单击时,Dock中的程序应该有“file-> runHello”项。

        您可以删除“Mainmenu.xib”中的窗口。 NSTask也可以执行所有shell命令,而不仅仅是脚本。

        在Snow Leopard中有一个“Applecript IBAction”。您可以将“Cocoa Application”更改为“Applescript application”。

        BR,
        尤哈