我在课堂上有一个UIButton。我想像这样设置按钮的目标。
[myController.dateButton addTarget:self action:@selector(showAction:) forControlEvents:UIControlEventTouchUpInside];
出于某种原因,当我按下按钮时,从不调用选择器。我尝试通过执行以下操作来调试问题,但我对NSSet
没有问题NSSet *allTargets = [myController.dateButton allTargets];
有关我可能做错的任何建议吗?
选择器定义如下:
- (void)showAction:(id)sender
{
// Do stuff
}
答案 0 :(得分:4)
也许这就是解决方案,因为我认为您的代码中存在任何问题。
当您将按钮声明为
时UIButton* tempBtn = [UIButton buttonWithType:UIButtonTypeRoundedRect];
从未在btn上发布过这个版本。
[tempBtn release];//dont do this!!
我自己尝试了这个并且工作正常。
- (void)viewDidLoad {
[super viewDidLoad];
UIButton* tempBtn = [UIButton buttonWithType:UIButtonTypeRoundedRect];
tempBtn.frame = CGRectMake(50, 50, 50, 50);
[tempBtn addTarget:self action:@selector(hello:) forControlEvents:UIControlEventTouchUpInside];
[self.view addSubview:tempBtn];
}
- (void) hello:(id) sender
{
NSLog(@"helloooo");
}