0

我正在尝试使用addTarget:Action:forControlEvents但我收到一个无法识别的选择器的运行时异常。

这是从initWithFrame中的UIView子类调用的。下面是我的代码:

myButton = [[UIButton alloc] initWithFrame:frame];
[myButton addTarget:self action:&selector(displayList:)
                         forControlEvents:UIControlEventTouchUpInside];

我的方法:

-(void)displayList:(id)sender

当我单击按钮时,它会收到以下消息:

-[MyClass displayList:]: unrecognized selector sent to instance. Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: -[MyClass displayList:]: unrecognized selector sent to instance.

MyClass是一个自定义控件,它是带有UIButtonUILabel的UIView子类。这个类将被放置在另一个应用程序的 ViewController 上。

我不确定我错过了什么。任何帮助将不胜感激。

4

2 回答 2

2

它应该读

[myButton addTarget:self action:@selector(displayList:) forControlEvents:UIControlEventTouchUpInside];

@ 代替 &

于 2012-04-17T14:13:52.170 回答
0
[myButton addTarget:self action:&selector(displayList:) forControlEvents:UIControlEventTouchUpInside];

语法是 @selector(displayList:)
此外,您的按钮可能不会触发事件。尝试以这种方式创建它:

UIButton *button = [UIButton buttonWithType:UIButtonTypeRoundedRect]; //this will return an autoreleased UIButton object, be careful.
button.frame = CGRectMake(...);
...
于 2012-04-17T14:14:35.033 回答