Когда вы говорите «яблочный скрипт», я не знаю, имеете ли вы в виду «простой» яблочный скрипт или версию 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, пока я не хочу его показывать.