Objective c 以编程方式附加事件处理程序

Objective c 以编程方式附加事件处理程序,objective-c,iphone,Objective C,Iphone,因此,我试图通过编程方式将事件处理程序附加到我在iphone应用程序上放置的小部件上,使用: addTarget:action:forControlEvents sliderEventIB,只是告诉我们它感觉到了事件: -(IBAction)sliderEventIB:(id)sender forEvent:(UIEvent*)event { puts( "I feel you joanna" ) ; } -(iAction)SliderEventB:(id)发送方forEvent:(UIE

因此,我试图通过编程方式将事件处理程序附加到我在iphone应用程序上放置的小部件上,使用:

addTarget:action:forControlEvents sliderEventIB,只是告诉我们它感觉到了事件:

-(IBAction)sliderEventIB:(id)sender forEvent:(UIEvent*)event { puts( "I feel you joanna" ) ; } -(iAction)SliderEventB:(id)发送方forEvent:(UIEvent*)事件 { 放(“我感觉到你了,乔安娜”); } 但我得到的错误是

ViewControllersTest[6744:207] *** -[UISegmentedControl sliderEventIB]: unrecognized selector sent to instance 0x3b21b30 ViewControllersTest[6744:207]***-[UISegmentedControl SliderEventB]: 已将无法识别的选择器发送到实例0x3b21b30
你知道它在这里不喜欢什么吗?

嗯,UISegmentedControl没有“sliderEventIB”方法

该方法的“addTarget”部分询问:“一旦发生事件,我应该通知谁?”。在本例中,您指定应通知UISegmentedControl,并且它应在该对象上调用sliderEventIB。相反,你应该说


[seg addTarget:self action:@selector(sliderentib)for controlEvents:uicontrolEventalEvents]

嗯,UISegmentedControl没有“sliderentib”方法

该方法的“addTarget”部分询问:“一旦发生事件,我应该通知谁?”。在本例中,您指定应通知UISegmentedControl,并且它应在该对象上调用sliderEventIB。相反,你应该说


[seg addTarget:self action:@selector(sliderEventIB)for controlEvents:UIControlEventAllEvents]

您似乎忘记了在addTarget中插入冒号:


[seg addTarget:seg action:@selector(SliderEventB:)for ControlEvents:UIControlEventAllEvents];


它应该是sliderentib:而不是sliderentib。

您似乎忘记了在addTarget中插入冒号:


[seg addTarget:seg action:@selector(SliderEventB:)for ControlEvents:UIControlEventAllEvents];


它应该是sliderEventIB:而不是sliderEventIB。

正确的代码如下:

- (void)loadView
{
    [super loadView];
    [seg addTarget:self action:@selector(sliderEventIB:forEvent:) forControlEvents:UIControlEventAllEvents];
}
- (IBAction)sliderEventIB:(id)sender forEvent:(UIEvent*)event
{
    NSLog(@"I feel you joanna");
}

请注意,该方法具有与使用
addTarget:action:forControlEvents

注册的选择器相同的选择器。正确的代码如下:

- (void)loadView
{
    [super loadView];
    [seg addTarget:self action:@selector(sliderEventIB:forEvent:) forControlEvents:UIControlEventAllEvents];
}
- (IBAction)sliderEventIB:(id)sender forEvent:(UIEvent*)event
{
    NSLog(@"I feel you joanna");
}
请注意,该方法具有与使用
addTarget:action:forControlEvents
注册的选择器相同的选择器