In my latest work on my Visionary Saver screen saver, I had tried switching all my preferences to use Cocoa Bindings, to make it super easy to manage the prefs. After doing this, and having it appear to work, I realized that it does not.
The problem is that screen savers are supposed to use the ScreenSaverDefaults class to manage their preferences. This is a special Defaults class that namespaces a screen savers defaults/preferences within the defaults system, given that a screen saver is a bundle, and works within System Preferences (as opposed to being its own application). The reason it doesn't work with bindings is that you can't tell the Bindings system about ScreenSaverDefaults (to my knowledge), in the same way as you can bind to the Shared Defaults Controller. ScreenSaverDefaults requires a module name, and so on. If there's a workaround, I'd love to hear it.
I thus had to go back to manually getting and setting the preferences for Visionary. This did simplify one thing, which is the preferences settings for an NSPopUpButton, where the content values come from an array, yet the selection and setting should go to preferences. Personally, NSPopUpButtons, for simple use, are a real pain. I'm not an Interface Builder expert, but it's odd that you can set up to 3 values into an NSPopUpButton in the UI, as generic text, but if you want more, you have to setup the whole NSArrayController and its content array, and so on, then bind that to the popup, etc, etc. It's not awful, but the documentation is pretty weak in terms of a straight forward use of something like this. I suspect many other folks don't have complicated data models behind the values for some of their popup buttons, and a cleaner way to do all this would be nice.
Anyway, it's all good now, or well, it's all fixed up, and there's a new version of Visionary Saver out.
09 January 2008
Cocoa Screen Saver Prefs and Bindings (or Not)
Posted by
Chris
at
2:10 PM
2
comments
Labels: Apple, Cocoa, Mac, screensaver, Visionary
28 December 2007
New Visionary Saver Version, and Updates
The Visionary Saver screen saver now has an official home, on my new (and barely going) business site (Cobalt Edge LLC). There is a new version (1.3) out, which mainly adds some additional visualizations. It is built for Leopard only, and will be this way going forward. My apologies to anyone running MacOS X versions prior to 10.5.
Posted by
Chris
at
9:50 PM
1 comments
Labels: screensaver, Visionary
09 August 2007
New Visionary Saver screensaver on the horizon
I've put a bit more work into the Visionary Saver screensaver, and should have a new version out soon. I'm likely going to have delay on the multi-monitor stuff. Getting all the preferences right for that is somewhat of a UI mess (especially for those of us who deal with multiple multi-monitor setups for a single computer).
On another note, I've added the "ThisWorld" visualization. Gary's FlickrTicker will be fully supported as well.
Depending on what work I get done on it this weekend, or in the next evening or two, I plan to have a new version out early next week, or this weekend.
Posted by
Chris
at
3:31 PM
3
comments
Labels: screensaver, Visionary