On Thu, May 15, 2008 at 10:12 PM, Rua Haszard Morris < [EMAIL PROTECTED]> wrote:
> I'm trying to set the action for an NSSlider in a little helper class that > is not the "file's owner" class associated with the window in the nib. At > runtime, I get these console messages: > > *** +[SliderHelper myAction:]: unrecognized selector sent to class > 0xeb74380 > HIToolbox: ignoring exception '*** +[SliderHelper myAction:]: unrecognized > selector sent to class 0xeb74380' that raised inside Carbon event dispatch > > This is how I'm setting this up: > - there's an NSObject subclass (call it MyDialog) containing IBOutlets for > all the controls I care about. > - there's another NSObject subclass (call it SliderHelper) which is > intended to automate some behaviour common to a few controls in the dialog > (and other dialogs in future) > - MyDialog instantiates a SliderHelper and passes it an NSSlider* outlet > referring to a slider > - SliderHelper sets up the target and action for the slider > programmatically in an +initWithSlider: method.. > > +(id) initTestSlider:(NSSlider*)aSlider { > SliderHelper* newOne = [[SliderHelper alloc] init]; > [newOne setSlider:aSlider]; > [[newOne slider] setTarget:self]; -init* is always an instance method, and always called as part of a [[Foo alloc] initBlah] pair. Above, you're passing a Class object to setTarget, but targets must be instances - hence the "unrecognized selector" error when you try to send the action to the target. I would write it like this: -(id) initWithSlider:(NSSlider*)aSlider { if ((self = [super init])) { [aSlider setTarget:self]; [aSlider setAction:@selection(myAction:)]; [self setSlider:aSlider]; } return self; } You should review the Cocoa Fundamentals Guide - especially the section about object creation: < http://developer.apple.com/documentation/Cocoa/Conceptual/CocoaFundamentals/CocoaObjects/chapter_3_section_6.html > sherm-- -- Cocoa programming in Perl: http://camelbones.sourceforge.net _______________________________________________ Cocoa-dev mailing list (Cocoa-dev@lists.apple.com) Please do not post admin requests or moderator comments to the list. Contact the moderators at cocoa-dev-admins(at)lists.apple.com Help/Unsubscribe/Update your Subscription: http://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com This email sent to [EMAIL PROTECTED]