2013-02-08 27 views
6

Belirli bir uygulamanın el kitabını kullanarak nasıl odak oluşturabilirim?Odağı kullanarak bir uygulamanın belirli bir penceresine odağı ayarla

Farklı ekranlarda çalışan birkaç iTerm2 pencerem var. Ben el yazısı kullanarak belirtilen bir pencereye odağı ayarlamak istiyorum.

Pencere kimliklerini toplayan ve bunları stdout'a basan bir betiğe ihtiyacım var. Ben bu var:

6 tamsayılar yazdırır
tell application "iTerm" 
    set wins to id of every window 
end tell 

: 3034, 2528, -1, -1, -1, -1

Bonus Soru: Dört -1 en nelerdir? Sonra

Denemek:

tell application "System Events" 
    activate window 3034 
end tell 

Bunun üzerine olay tek şey (ki ben bu komutları yazarak) benim şimdiki terminalin odak kaybetmek yani ben 3034 veya 2528 belirtmek olmadığı önemli değil İD.

+2

[Bu soruyu Farklı Sorma] bölümüne bakın (http://apple.stackexchange.com/questions/39204/script-to-raise-a-single-window-to-the-front); Eğer "uygulamayı etkinleştirmek için" uygulama "uygulaması" ile bazı Windows "eylemini gerçekleştirmek" AXRaise "birleştirirseniz, istediğinizi elde edersiniz. Ancak uyarı (ve bunun bir cevabı değil), pencereyi pencere kimliğine göre bu şekilde belirtebiliyorsunuz (bu doğru bir şekilde anladığım kadarıyla, pencere kimlikleri uygulamaya özgüdür). Bonus sorusu: -1'ler muhtemelen görülebilir veya olmayabilir hatta tercih/bulma diyalogları gibi şeylerdir. –

cevap

3

Neredeyse buna sahipsiniz. Sen sadece görünür pencere bakarak "-1" penceresi kimlikleri filtreleyebilirsiniz:

tell application "iTerm 2" 
    set wins to id of every window whose visible is true 
end tell 

Ben sonuçlarına bakarak anladım:

tell application "iTerm 2" to properties of every window 

Fark ettim "-

tell application "iTerm 2" 
    activate window 13195 
end tell 
: 1" pencereler Sonra yerine sistem olaylarının iTerm uygulamasına doğrudan pencere kimliğini söyleyebilir, tesisi visible:false

var

+4

Keşke bu benim için çalıştı, ama bunun yerine, verilen uygulamanın son aktif penceresini etkinleştirir. –