Instantly share code, notes, and snippets.

What would you like to do?
To support the table of contents button in the OS X Help Book app you need to implement the following code. This isn't documented anywhere but I found it in Apple's own help files and tested it to work. I believe it only works in the more recent versions of OS X, so you if your app supports really old versions you might want to check it.
//disable TOC button
//enable TOC button
//If you call this on window load it will flash active for a brief second and then disable again.
//Call if after a delay of 250ms and is works fine
//Not sure what the second variable does yet, but passing false works fine
window.HelpViewer.showTOCButton( true, false, function() {
//do something to toggle TOC in your webpage
//Apple stores the status of the TOC using a window session variable, you can use this to keep the TOC open or closed
//when transitioning between pages.

This comment has been minimized.

bibhas commented Nov 17, 2017

This doesn't seem to work any more on 10.13. Is that correct?


This comment has been minimized.

balthisar commented Apr 22, 2018

This is driving me crazy. It seems to only half work on 10.13, and when I try my help file on 10.10, 10.11, and 10.12, it doesn't seem to work at all. On 10.13, I have to click the TOC button twice (most of the time) to get it to do anything.

Looking at Apple's app.js file as used in iTunes tends to make me think that this should work, but for some reason I can't get it to do so.

Also, the sessionStorage thing isn't automatic. You still have to setItem and getItem yourself.

I'm at the point where I want to put a Show/Hide topics item on every page of my help file, or even leave them open all the time. It's starting to look really dated with it's pre-10.10 look and feel, and getting this to work would be nice.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment