setEnabled: only changes the availability of the button to user interaction
The following will switch the button's image along with setting the button's state to on/off
[toggleButton setState:NSOnState];
[toggleButton setState:NSOffState];
If you would like to have the appropriate action to be taken along with the state change, you will have to call the appropriate functions as well
[toggleButton setState:NSOnState];
[self startFunction:toggleButton];
Alternatively, you can call
[toggleButton performClick:self];
However, this will cause a brief aqua blue shading of the button (like you are actually clicking on it) while it switches state. I prefer the former method on account of this.
All this is just made on some quick observations I made a little while ago, while trying to do the same thing (googling brought me to this thread). Hope this helps :)