2012-01-20 29 views
0

我在我的Applescript中具有此功能,其中輸入對話框顯示給用戶輸入一些文本。此對話框代碼在每3秒後重復的"on idle" "end idle"之內。輸入對話框在Applescript中處於「空閒」狀態時重新出現

問題出現在顯示此對話框並且用戶沒有輸入任何詳細信息並且保持對話框處於打開狀態,而不是一分鐘左右之後,仍然保留此對話框但出現另一個對話框(同一個對話框重複)。 "on idle"裏面應該怎麼處理這個問題?

代碼的分解如下所示,以供參考。

on idle 
    try   
    tell application "iTunes" 
     repeat 

      set loginbutton to display dialog "Enter your facebook log in name to start using XXX." default answer loginusername with title "XXX Log In" buttons {"Quit", "OK"} default button 2 
      display dialog "loginbutton = " . loginbutton 

      end repeat 
      end tell 
    end try 
    return 3 
end idle 
+0

嗯......你想嘗試關閉應用程序時嘗試調用'quit'嗎? – fireshadow52

+0

一個普通的AppleScript將只是坐在那裏等待對話的響應 - 這是在AppleScript Studio或什麼?閒置處理程序並不是真正的對話方式 - 你想要做什麼? – 2012-01-20 17:10:55

+0

只是一個側面說明,但你是否聲明'loginusername'變量全局? – fireshadow52

回答

1

在常規的AppleScript,當你把一個對話框,該腳本將等待,直到對話框,然後再繼續解僱。我無法得到你所描述的症狀,儘管你的示例代碼片段不完整,有點兒錯誤 - 你處於重複(永久)循環而沒有逃脫的方式,因爲你也在捕獲所有的錯誤。

空閒處理程序是不是真的這樣的事情的地方 - 這個處理程序被調用時,您的應用程序,那麼,閒置,所以無論代碼是它將運行每個腳本沒有做任何事情時。

,如果你只是想一個重複,直到返回正確的答案一個對話框,你可以使用像在主運行處理器

repeat -- forever 
    display dialog "this is a test, so enter something with \"test\"" default answer "test" 
    set theAnswer to text returned of the result 
    if theAnswer contains "test" then exit repeat -- success 
end repeat 
log theAnswer 

請注意以下幾點,雖然對話框的取消按鈕生成一個「用戶取消「錯誤,在保持開放腳本腳本不會退出的錯誤,所以你將需要做你自己的錯誤處理。

相關問題