5

そこで、最近.appzshスクリプトのラッパーを作成しましたが、それを実行すると、アプリのアイコンがDockでホッピングし続けます。

アプリは基本的に:

% 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
%

githubから取得することもできます。

アプリのアイコンでホッピングを停止し、通常のアプリのように動作させて、その横に三角形を配置する方法はありますか?

4

3 に答える 3

9

アプリケーションのアイコンは、アプリがメインイベントループに入り、ユーザー入力への応答を開始するまで、OSXDockでバウンスします。スクリプトはおそらくCarbonまたはCocoaイベントループを実行しないため(Carbon Event ManagerとNSApplicationのドキュメントをそれぞれ参照)、Dockは継続的に待機しており、通常のフォアグラウンドGUIアプリケーションが出現することを期待しています。

私が成功したスクリプトラッピングツールはPlatypusです。スクリプトの実行中に独自のイベントループを実行したり、その他の便利なことを実行したりできます。

于 2009-06-17T16:47:09.927 に答える
2

DropScriptが必要です。ドックはそのようなシェル スクリプトでは動作しません。もう少し本格的なものが必要です。

于 2009-06-17T16:26:28.627 に答える
1

LSUIElement を Info.plist ファイルに追加すると、うまくいくはずです。

于 2013-05-29T01:10:08.237 に答える