未调用 UIButton 选择器

Posted

技术标签:

【中文标题】未调用 UIButton 选择器【英文标题】:UIButton selector not called 【发布时间】:2011-08-26 09:24:32 【问题描述】:

我在一个类中有一个 UIButton。我想像这样为按钮设置一个目标。

[myController.dateButton addTarget:self action:@selector(showAction:) forControlEvents:UIControlEventTouchUpInside];

由于某种原因,当我按下按钮时,永远不会调用选择器。我尝试通过执行以下操作来调试问题,但 NSSet 得到 nil

NSSet *allTargets = [myController.dateButton allTargets];

关于我可能做错的任何建议?

选择器定义如下:

- (void)showAction:(id)sender

   // Do stuff

【问题讨论】:

【参考方案1】:

也许这就是解决方案,因为我不认为你的代码有什么问题。

当您将按钮声明为

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");

【讨论】:

第一次可以正常工作,但是当这个东西在 tableview 单元格中并第二次绑定时就不行了...!?!

以上是关于未调用 UIButton 选择器的主要内容,如果未能解决你的问题,请参考以下文章

uibutton 添加目标选择器方法在调用类而不是在被调用类中调用

UIButton 调用选择器使应用程序崩溃

UIButton 选择器的状态和进度

使用带有两个参数的 UIButton addTarget 时无法识别的选择器

UIButton 的 IBAction 导致无法识别的选择器发送到实例错误 (iOS)

无法识别的选择器发送到 UIButton+AFNetworking.h 的实例(UIImageView+AFNetworking 也是)