2012-05-09 20 views
4

私は、プログラムのXCode経由のiOSプロジェクトを立ち上げるための簡単なスクリプトがあります。スクリプトXcode:ウィンドウをアクティブにせずにAppleScriptのメニュー項目をクリックしますか?

on run project_loc 
    tell application "Xcode" 
    open project_loc 
    activate 
    end tell 

    tell application "System Events" 
    tell application process "Xcode" 
     click menu item "Run" of menu 1 of menu bar item "Product" of menu bar 1 
    end tell 
    end tell 
end run 

は、これは私が一部としてこれを使用しようとしているので、それは理想的ではないXcodeの、にフォーカスを切り替えていることを除いて、うまく機能関連するファイルの変更に応じて自動的に再コンパイルして再起動するスキームのことです。 Xcodeウィンドウに焦点を当てることなくこれを達成する方法はありますか?

答えて

4

GUIスクリプトを使用して、メニュー項目をクリックすることはできません。アプリケーションに切り替えることはできません。アプリケーションのメニューバーは、フォーカスがあるときにのみ使用できます(または、最後に焦点を当てたアプリでした。フォーカスされたウィンドウは必ずしも必要ではありません)。しかし、あなたはあなたのスクリプト中にあなた以前に焦点を当てたアプリに戻って切り替えることにより、スイッチ化による破壊を軽減することができます。

on run 
    tell application "System Events" to set focusedAppID to bundle identifier of first application process whose frontmost is true 
    <your code here> 
    tell application id focusedAppID to activate 
end run 

しかし...のXcode自体はスクリプト可能なアプリケーションです。あなたが必要とするすべてが構築するためのプロジェクトのためにある場合は、なぜあなたはワームのGUIスクリプティングの缶を惜しまます

tell application "Xcode" to build <target/project> 

を使用しないことである - ちょうどXcodeのをドラッグする - XcodeのAppleScript辞書(デフォルトでは追加されないで見てAppleScriptエディタのライブラリウィンドウに.app)。

+0

'先頭に最も近い最初のアプリケーションプロセスのバンドルIDにfocusedAppIDを設定する 'これは何を意味するのか分からない – jacobross85

関連する問題