4

I've developed an application which gathers some information on presentations and monitors the behaviour of the presenter during the presentation. The applications is an OS X app build in Objective-C with the Cocoa Framework

In the past I've used Apple's very own ScriptingBridge.framework together with the API interface generated from sdef /Applications/Keynote.app/ | sdp -fh --basename Keynote .

With versions prior to Keynote 6 (which has been released a couple of days ago), the interface contained classes and methods that could be used to gather useful information on the current state of the running Keynote application. Some examples I've used in my app:

  • Check if keynote was in presenter mode
  • Get the slide number of the currently active slide (in presenter mode)
  • For every slide you could get some information (such as what was on it)
  • ...

Looking at the newly generated header file of Keynote 6, it seems that Apple has written an entirely new API interface. It seems that everything I wrote above is no longer possible! Even worse, it seems like they made interactions with Keynote only one way! The API allows you to instruct Keynote to do certain actions (i.e. export, open, start presentation, ...), but the support to request information on the internal state of a running Keynote application seems to be left out.

I was wondering whether or not anyone else has noticed this? If so, is there are work around to still get internal state information from Keynote (which was possible < v6.0)? If ScriptingBridge is not the way to go anymore, is there another way to access this information?

Looking forward to your responses, as my application is currently useless and not working...

Madsen
  • 396
  • 1
  • 2
  • 12
  • Apple have gutted AppleScript support in iWork '13. (e.g. See http://www.libertypages.com/clarktech/?p=6597 for further discussion.) – foo Oct 28 '13 at 14:58
  • I'm in the same boat as you. Our keynote integration is totally hosed. Will post back here if I find a workaround. – George Oct 31 '13 at 01:35

1 Answers1

0

How about using the accessability API for assistive applications? The documentation is a bit thin, but it's fairly likely to work: https://developer.apple.com/library/mac/documentation/Cocoa/Conceptual/Accessibility/cocoaAXNotifications/cocoaAXnotifications.html#//apple_ref/doc/uid/20001061-CJBBDEAD

Stefan Fisk
  • 1,563
  • 13
  • 19