跳轉至內容

AppleScript 程式設計/高階程式碼列表/顯示對話方塊

來自華夏公益教科書,開放的書籍,開放的世界

使用命令 "display dialog" 可以使指令碼呼叫一個標誌,它可以用於很多目的,列出它們都沒有意義。但至少有幾個例子,它可以用來通知使用者,詢問選項(是/否),提示使用者輸入,等等。

最簡單的形式是這樣的

display dialog "Hello!"

這將給出這樣的結果

從複雜性的角度來看,它與這段程式碼完全相反...

set my_pass to text returned of (display dialog "Enter password for " & ¬
	quoted form of my_name ¬
	with title "LiveJournal Post Event" ¬
	with icon stop ¬
	default answer "" ¬
	buttons {"Continue…"} ¬
	default button 1 ¬
	with hidden answer ¬
        giving up after 5)

... 以及這個視窗

注意:要使上面的指令碼正常工作,您需要設定變數 "my_name"。

  • 我將介紹第二個示例中顯示的程式碼的每一部分,以便您對可以做什麼有更多瞭解。
set myVariable to text returned of (

當您用這個開始 display dialog 命令時,您將呼叫帶有輸入提示的對話方塊視窗。只需記住在最後新增 ")",我在上面的例子中省略了它,這樣您不會嘗試像 ... return of () display dialog ... 那樣做。

quoted form of myVariable

使用這部分命令,您可以將 "單點" 引號放在變數周圍,而不是 "雙點" 引號,這對於 \' 是不可能的,而 \" 可以用來在對話方塊文字中新增引號。

with title "Hello punk!"

這將為對話方塊視窗設定一個標題。

with icon stop

這將簡單地將停止符號新增到對話方塊視窗中。

default answer ""

當您使用輸入提示時,這將插入某種 "預設" 內容到輸入欄位中。如果它像示例中一樣是 "",則輸入欄位中將沒有任何內容。但如果是 "1",則輸入欄位中將有 "預寫" 的數字 1(並被選中)。

注意:將此新增到 display dialog 也會建立輸入提示。

buttons {"Uh, no.","Continue…"}

使用此,您可以確定按鈕的數量以及它們的文字。如果沒有這個,將有預設按鈕 "取消" 和 "確定"。

注意:如果沒有確定按鈕名稱,您無法執行 "if button returned of result is "OK""。

default button 1

使用此,您可以確定對話方塊視窗中哪個按鈕是 "選中" 的。如果沒有包含此程式碼,而您設定了自己的按鈕(使用 buttons {}),則不會 "選中" 任何按鈕,並且按 Enter 不會關閉對話方塊 - 強制使用者點選其中一個按鈕。按鈕順序是從 "左到右" 確定的,因此按鈕編號 1 是最左側的按鈕。

with hidden answer

這將使寫入輸入欄位的文字顯示為球體,類似於 "••••"。不需要任何形式的 "with visible answer" 程式碼。

giving up after 5

使用此,您可以限制顯示對話方塊視窗的時間。如果沒有包含此程式碼,則只能使用按鈕(或預設按鈕的 "返回" 鍵)關閉視窗。如果包含,則會將單獨的 "gave up:true" 或 "gave up:false" 作為結果的子欄位返回。

您可以使用類似下面的程式碼來提取單獨的返回子欄位值

   set theReturnedItems to (display dialog "How are you?" default answer "Example" buttons {"Quit", "OK"} default button 2 giving up after 4)
   set theAnswer to the text returned of theReturnedItems
   set theButtonName to the button returned of theReturnedItems
   set theGaveUpState to gave up of theReturnedItems as string

由於 "result" 可以隨時更改,因此立即將它的部分儲存在區域性變數中非常重要。您不能在 (display dialog ...) 之前使用 "set my_pass to text returned of",因為這會改變結果。您必須保留整個結果,因為您可能需要提取單獨的子欄位。

  • 就是這樣,您對 "display dialog" 的瞭解與最初的作者在寫這段程式碼時一樣多。

結束注意:我寫的所有文字(程式碼除外)都是我自己的,自發形成和書寫。與任何受版權保護的來源的等同性是純粹的巧合

華夏公益教科書