我尝试使用 addTarget 将事件添加到这样的 UIButton
EGOImageButton* image = [[EGOImageButton alloc] initWithPlaceholderImage:[UIImage imageNamed:@"screen.png"]];
[image setImageURL:[NSURL URLWithString:thumbnail]];
[image setFrame:CGRectMake(x, y, self.cellsize, self.cellsize)];
[image setTag: [self.photoIDs count]-1];
[image addTarget:self action:@selector(buttonTouched:) forControlEvents:UIControlEventTouchUpInside];
[self.view addSubview:image];
[image release];
函数定义是这样的:
-(void)buttonTouched:(id)sender {
NSLog(@"Thumbnail Clicked");
}
这是 EGOImageButton 初始化函数的代码
- (id)initWithPlaceholderImage:(UIImage*)anImage {
return [self initWithPlaceholderImage:anImage delegate:nil]; }
- (id)initWithPlaceholderImage:(UIImage*)anImage delegate:(id<EGOImageButtonDelegate>)aDelegate {
if((self = [super initWithFrame:CGRectZero])) {
self.placeholderImage = anImage;
self.delegate = aDelegate;
[self setImage:self.placeholderImage forState:UIControlStateNormal];
}
return self;
}
错误看起来像这样:
-[ NSCFType buttonTouched:]:无法识别的选择器发送到实例 0x6c804a0 2012-06-06 01:36:59.061 Facebook 的照片拼贴 [2416:16103] *由于未捕获的异常“NSInvalidArgumentException”而终止应用程序,原因:'-[__NSCFType buttonTouched :]: 无法识别的选择器发送到实例 0x6c804a0' *第一次抛出调用堆栈:( 0 CoreFoundation 0x0046a5a9 __exceptionPreprocess + 185 1 libobjc.A.dylib 0x01402313 objc_exception_throw + 44 2 CoreFoundation 0x0046c0bb -[NSObject(NSObject) doesNotRecognizeFoundationSelector:] + 0x003db966 __转发+ 966 4 核心基础 0x003db522 _CF_forwarding_prep_0 + 50