2012-03-29 13 views
1

Microsoft Wordでドキュメントの内容を更新するために、AppleScriptを使用しています。更新プロセスはかなり時間がかかります(5秒以上かかる場合があります)。だから私はユーザーが更新中に何かを変更するのを防ぐためにしたい。 MicrosoftやAppleScriptがそのような機能を持っているかどうか知っていますか?AppleScriptとMicrosoft Word

Windowsでは、ユーザーフォーム(「更新中です...」というダイアログ)が表示され、完了したらそのフォームを閉じることができます。しかし、私はMacで(AppleScriptだけで)同じことができるかどうかはわかりません。

答えて

0

あなたが「applescript」と言うとき、私はあなたが「普通」のAppleScriptまたはAppleScriptObjCバージョンを意味するのかどうかわかりません。あなたが後者を意味するなら、私はそれを行う方法を知っています。 私が遅いプロセスで使用した1つの方法は、ウィンドウのコンテンツビュー全体にオーバーレイビューを置くことです。私はそれを部分的にウィンドウを覆い隠すために半透明の白にし、ある種のメッセージ(および進捗インジケータ)をその上に置きます。 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に隠されたプロパティを設定します。ここでは、私が使用したコードです。