Applescript и Microsoft Word - PullRequest
       13

Applescript и Microsoft Word

1 голос
/ 29 марта 2012

Я работаю над appleScript, чтобы обновить содержимое документа в Microsoft Word.Процесс обновления довольно длительный (может занять более 5 секунд).Поэтому я хочу запретить пользователям что-либо менять во время обновления.Знаете ли вы, Microsoft или Applescript подобную функцию?

В Windows я могу просто отобразить форму пользователя (которая представляет собой диалоговое окно с сообщением «мы обновляем ...») и закрыть эту форму, когда онасделанный.Однако я не знаю, смогу ли я сделать то же самое в Mac (только с Applescript).

1 Ответ

0 голосов
/ 29 марта 2012

Когда вы говорите «яблочный скрипт», я не знаю, имеете ли вы в виду «простой» яблочный скрипт или версию AppleScriptObjC. Если вы имеете в виду последнее, то я знаю способы сделать это. Один из способов, который я использовал во время медленных процессов, - это наложение вида поверх всего содержимого окна. Я делаю его полупрозрачным белым, чтобы частично скрыть окно, и помещаю какое-то сообщение (и, возможно, индикатор прогресса) в него. Вы можете просто использовать NSBox (пользовательского типа) в IB, чтобы сделать это, а затем создать подкласс 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, пока я не хочу его показывать.

...