代码之家  ›  专栏  ›  技术社区  ›  rampion

如何使Dock图标在应用包装脚本启动后停止跳动?

  •  3
  • rampion  · 技术社区  · 16 年前

    所以我最近做了一个 .app 一个zsh脚本的包装器,但是当我运行它时,应用程序的图标会一直跳到基座上。

    应用程序基本上是:

    % find Example.app -type f
    Example.app/Contents/Info.plist
    Example.app/Contents/MacOS/wrapper.sh
    % cat Example.app/Contents/Info.plist
    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
    <plist version="1.0">
    <dict>
     <!-- tell OSX what the name of the executable is -->
     <key>CFBundleExecutable</key>
     <string>wrapper.sh</string>
    </dict>
    </plist>
    % cat Example.app/Contents/MacOS/wrapper.sh
    #!/usr/bin/env zsh
    # not my real script, but something else that hangs for a while
    sleep 10
    %
    

    你也可以 grab it from github .

    有没有什么方法可以让我的应用图标停止跳跃,像一个正常的应用程序一样,坐在那里 旁边有一个三角形?

    3 回复  |  直到 12 年前
        1
  •  6
  •   Draxillion    16 年前

    一个应用程序的图标将在OSX平台上弹出,直到该应用程序进入其主事件循环并开始响应用户输入。由于脚本可能没有运行Carbon或Cocoa事件循环(分别参见Carbon事件管理器和NSApplication的文档),所以Dock一直在等待,期待出现一个常规的前台GUI应用程序。

    我成功使用的脚本包装工具是 Platypus . 它可以在执行脚本时运行自己的事件循环,并执行许多其他方便的操作。

        2
  •  2
  •   Jim Puls    16 年前

    你想要 DropScript . Dock不适用于这样的shell脚本,它希望有一些更成熟的脚本。

        3
  •  1
  •   user2199684    12 年前

    我认为如果您将lsuielement添加到info.plist文件中,它应该可以工作。