2012-05-09 42 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本身是一個腳本程序。如果你需要的是項目建設,爲什麼不使用

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

,這將免去你的蠕蟲GUI腳本的可就是 - 看看Xcode的AppleScript字典(默認情況下不添加 - 只需拖動的Xcode .app到AppleScript編輯器中的庫窗口)。

+0

'將focusedAppID設置爲包含最前面爲真的第一個應用程序進程的標識符'我不明白這意味着什麼 – jacobross85