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]