Aha!!

Exactly, the self is not what I thought it was ... I understood the + was a class method, and kinda ignored the strange use of self.

(I have only recently become aware that there is a 'self' in an instance method incidentally...)

thanks for the help
Rua HM.

On May 16, 2008, at 2:38 PM, Sherm Pendley wrote:

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]

Reply via email to