Reality Distortion Field Theory
Monday, October 16, 2006
Cocoa:Cocoa Action Categories for Interface Builder (Multiple Inheritance)

So now we've got a fairly general method of doing multiple inheritance within Cocoa applications. Now for some fun stuff. Wouldn't it be great if we could define categories of IB Actions on NSWindow as protocols, and then make it real easy to wire them up using the connection logic of Interface Builder.

As it turns out, this was way easier to do than I thought. Interface Builder is able to read Objective-C header files to find classnames, outlets and actions, but the parser is very easy to fool. All we have to do is wrap our 'action declarations' from our NSWindow category with a preprocessor exclude:

#if 0
/* never compiled, but parsed by IB just fine*/
-(IBAction) dataGoryActionOne:(id)sender;
-(IBAction) dataGoryActionTwo:(id)sender;
-(IBAction) dataGoryActionThree:(id)sender;
/* the great part about actions is their function signature will not be changing!*/

And Interface Builder will parse out the action definitions and allow you to wire connections to them. But the trick is, you don't need to implement the actions - the category methods on NSWindow will take care of that for you.

REMEMBER: if you use this technique of adding actions to NSWindow using a category/protocol, be sure that your ACTION NAMES are VERBOSE, so as to distinguish them from any additions the Cocoa team might make to NSWindow in the future. You have been warned!

Source Code: Cocoa Action Categories.

By : Cocoa Coder Cocoa Action Categories for Interface Builder (Multiple Inheritance)



 [Site Map]    
 Apple News    
 Cocoa Programming    
 Reading List    
 Reality Distortion Field    
 latest apple news iphone    
 latest mac apps news    
 ipad latest news apps    
 iSight Download    
 Best WebCam    
 Screen Capture    

Copyright © 1996-2006
All Rights Reserved
Reality Distortion Field Theory

search this site only.