I'm trying to use an applescript to lock every object across every slide of a keynote deck, with only partial success. I've provided the code I'm using below. So far it works, but it seems to skip any objects that are grouped. Is there any way I can tell the script to also include grouped objects?
tell application "Keynote"
tell document 1
tell every text item of every slide
set locked to true
end tell
tell every shape of every slide
set locked to true
end tell
tell every image of every slide
set locked to true
end tell
tell every movie of every slide
set locked to true
end tell
tell every line of every slide
set locked to true
end tell
tell every item of every slide
set locked to true
end tell
end tell
end tell
The intention is make it so that the content of every slide is locked, with the exception of the presenter notes. I'm not even sure if this can be done, so I'd appreciate any help on this. Thanks in advance!
Best Answer
If you look at the Keynote AppleScript Dictionary you will see that the "group" element has no property for the boolean "locked". It seems that the only things that can be locked are the individual elements of the slide, but not a group on the slide, nor the slide itself.
If you can, I'd suggest going through and ungrouping the groups in your slide, re-run your script to lock all of the individual elements on each slide, then go back and group them again (If you can group locked items, which I do not know). Depending on how or why the elements are grouped, this might have a negative visual impact on the group itself (They might not look right).
I would have posted this as just a comment, but Stack Exchange won't let me comment yet. So here is your "Answer", not that it solves your problem.