2010-11-21 18 views
1

Elma yazılarında fazla programlama yapmıyorum, ancak çoğunlukla python olan ancak basit elyazmaları üreten ve bunları sistem çağrısı aracılığıyla çağıran kişisel bir uygulamam var. Applescript, genellikle ben bir program içinde bir belgenin pencere sırasını almak nasıl olduğunu anlayamıyorum ben genellikle programladığım dillerden çok farklı ...Belge dosya adına göre erişim penceresi

Aramaları gibi yapmak için

: başka bir deyişle

set bounds of **first** window to %s 

, nasıl bir uygulama için belgenin "penceresi düzen" alabilirim?

böyle bir belge erişen aracılığıyla bir pencere ile etkileşim mümkün mü:

to get bounds of first window whose document is "%s" 

(hangi çalışmıyor) ya da ben etkileşim sonra ilk belgenin bir pencere sırası almak ve gerekiyor Bu pencere (sırası ile) ikinci bir satırda mı?

Herhangi bir fikir harika olurdu. Teşekkürler.

cevap

2

Her ikisini de yapabilirsiniz. İlk satır sadece set bounds of window 1 to ... veya tercih ederseniz, set bounds of the first window to ... İkincisi, tam olarak ne yapmak istediğinize bağlıdır. Özellikle adı olan ilk pencereye erişmek istiyorsanız, sadece get the bounds of window "NAME"; Eğer gerçekten dokümanın adını isterseniz, yine de, sen

set d to the document "NAME" 
repeat with w in windows 
    if w's document is d then return bounds of w 
end repeat 

Sen the first window whose document is d yapmak gerekir, ancak bu başarısız böyle bir şey yapmak gerekir; anlatabildiğim kadarıyla, document aynı zamanda bir tür isim. Ayrıca, window "NAME"/document "NAME" başarısız olursa, bazen çalıştığını hatırladığım türden bir şey olsa bile, the first window whose name is "NAME" (veya the first document ...) kullanabilirsiniz. Ancak basit biçim neredeyse kesinlikle işe yarayacak.

Ayrıca, yalnızca bu AppleScripts'i oluşturuyorsanız, onları çağırıyor ve siliyorsanız — başka bir deyişle, daha sonra kullanmak üzere üretmek yerine Python'un işlevleri gibi davrandığını düşünüyorsanız - tavsiye ederim bunun yerine appscript kullanarak. Python'da hiç kullanılmamıştım, ancak Ruby'de var ve seçim dilini kullanırken hala AppleScript'in yaptığı her şeyle başa çıkmak için harika bir yol. Örneğin, ilk örneğinizin app('Whatever').windows[1].bounds.set((0,0,0,0)) (ya da tercih ederseniz ...windows.first....) olacağını ve ikincisinin pencerenin adına ya da pencerenin belgesinin adına ihtiyacınız varsa app('Whatever').windows['NAME'].bounds.get() ya da app('Whatever').windows[its.document.name == 'NAME'].get() haline geleceğini düşünüyorum. Bu, tüm test edilmemiş'dur, ancak appscript'in neye benzediğini (güzel ve özlü) tatlandırır.

İlgili konular