2012-03-29 137 views
1

我正在研究一個applescript來更新Microsoft Word中文檔的內容。更新過程很長(可能需要超過5秒)。所以我想阻止用戶在更新過程中更改任何內容。你知道微軟還是Applescript是否有這樣的功能?Applescript和Microsoft Word

在Windows中,我可以只顯示一個用戶表單(這是一個對話框,告訴我們「我們正在更新...」)並在完成時關閉該表單。但是,我不知道我是否可以在Mac中完成相同的操作(僅使用AppleScript)。

回答

0

當你說「applescript」時,我不知道你的意思是「普通」applescript還是AppleScriptObjC版本。如果你的意思是後者,那麼我知道如何去做。 我在緩慢的過程中使用的一種方法是在窗口的整個內容視圖上放置覆蓋視圖。我把它變成半透明的白色,以部分模糊窗口,並在其上放置某種消息(也可能是進度指示器)。你可以在IB中使用一個NSBox(自定義類型)來做到這一點,然後使NSBox的一個子類爲視圖着色並覆蓋mouseDown :. MouseDown :,不需要任何代碼,只需重寫它,就可以捕獲任何鍵和鼠標事件,以便它們不會累積在事件隊列中,並在覆蓋消失後被下面的視圖使用。這裏的代碼我使用:

script Overlay 
property parent : class "NSBox" 

on awakeFromNib() 
    set overlayColor to current application's NSColor's colorWithCalibratedWhite_alpha_(1,.8) 
    setFillColor_(overlayColor) 
end 

on mouseDown_(theEvent) 
    --log "mouseDown" 
end 

端腳本

我有這種說法在視圖層次結構的最頂部的視圖,直到我想表明它其隱藏的屬性設置爲true。