Mulle kybernetiK presents


MulleConnectInspector is a drop in replacement for the ConnectInspector in InterfaceBuilder. It fully replicates the built-in inspector and adds the following features:
  • Improved discovery of outlets and target methods
  • An interface to add new connection types on top of 'Outlet' and 'Target/Action'
  • Connections can have paths as their destinations

The first, less glamorous feature, can hardly be seen but it is quite powerful. Normally, when forming a connection InterfaceBuilder uses static information from parsed header files to determine which outlets and/or target methods an object has. MulleConnectInspector implements this as default behaviour but allows your object to implement certain methods and return additional/alternative outlets and targets. This means for example that an embedded interpreter can have methods defined in its scripts listed in the connect inspector so that, say, a button can be connected directly to one of the script methods.

By implementing a subclass of MKConnectionType you can have the connect inspector handle new types of connections that you have implemented yourself, something similar to EOAssociations maybe. Have a look at this screenshot for a teaser. But it doesn't stop there. The destination path doesn't even have to be a key-value path. (Rather than using the outline view you would type the path into the text field below.) What about a connection type that evaluates XPaths on destination objects that are XML documents?

First public release. The inspector has been used and tested by several parties for a while but postive feedback at the FOSDEM 2003 conference prompted me to make it publically available. There is not a lot of documentation at the moment but feel free to contact me at if you are interested.

Showing the inspector with a new connection type
Make sure to select the MulleConnectInspector project!
Check existing bugs
Browse the source code online

MCI 1 (source for Mac OS X)

The project comprises a framework and an InterfaceBuilder palette. Build and install both in a suitable directory, then load the palette into InterfaceBuilder. You can tell if you are using the MulleConnectInspector by looking at the Outlets label above the browser; it should be a pop-up like in this screenshot; not the normal flat text. If this doesn't look right, check that the palette has loaded. Its icon should be displayed in the palette window toolbar. (If you have a lot of palettes it might be hidden and you might have to click on the double arrows as show in this screenshot to see it.) If the palette is there and the inspector doesn't work drop me a note, otherwise check the Console for further information.

Thanks to Nat! for giving me access to the CODEOInterface source which saved me many hours of trying to figure out InterfaceBuilder internals and also for giving the inspector a real test run in the MulleEOInterface framework (soon to be released.) Thanks to Helge Hess for all his (obscure) requests that made the design so much more flexible.

Thanks to Brian Caron for donating the artwork to this project. Check out his gallery at for more when you have a moment.