This is AdderController.m in view mode; [Download] [Up]
/* AdderController.m created by todd on Sun 28-Apr-1996 */ #import <AppKit/AppKit.h> #import "Adder.h" #import "AdderController.h" @implementation AdderController /*" AdderController is responsible for displaying the contents of the Adder object as well pushing new values entered by the user back to the Adder object. "*/ //------------------------------------------------------------------- // Initialization/deallocation //------------------------------------------------------------------- - (id) init { BOOL error = ([super init] == nil); if (!error) { // Create our model object. _adder = [[Adder alloc] init]; } return error ? nil : self; } - (void) dealloc { [_adder release]; [_firstNumberTF release]; [_secondNumberTF release]; [super dealloc]; } //------------------------------------------------------------------- // Accessor methods //------------------------------------------------------------------- - (Adder*) adder { return _adder; } - (NSTextField*) firstNumberTF { return _firstNumberTF; } - (void) setFirstNumberTF:(NSTextField*)newTextField { [_firstNumberTF autorelease]; _firstNumberTF = [newTextField retain]; } - (NSTextField*) secondNumberTF { return _secondNumberTF; } - (void) setSecondNumberTF:(NSTextField*)newTextField { [_secondNumberTF autorelease]; _secondNumberTF = [newTextField retain]; } //------------------------------------------------------------------- // Actions //------------------------------------------------------------------- - (void) addedNumbersChanged:(id)sender /*" Either the first or second number changed so do some updating. "*/ { float firstVal = [[self firstNumberTF] floatValue]; float secondVal = [[self secondNumberTF] floatValue]; [[self adder] add:firstVal and:secondVal]; // You should send this any time you change the model object. // That way you know you are "dirty" and edit notification // will also be sent. [self didEdit]; // Make whichever textfield changed selected again so the // user doesn't have to click in one of the textfields again if // they want to change the number again. if ([sender respondsToSelector:@selector(selectText:)]) { [sender selectText:nil]; } } - (void) _initializeUI { // This just syncs what's shown in the TextFields (as entered in IB) // and the result in the result textfield. [[self firstNumberTF] setFloatValue:[[self adder] firstNumber]]; [[self secondNumberTF] setFloatValue:[[self adder] secondNumber]]; } @end
These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.