【问题标题】:UIButton selector not called未调用 UIButton 选择器
【发布时间】: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
}

【问题讨论】:

    标签: objective-c ipad uibutton event-listener


    【解决方案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 单元格中并第二次绑定时就不行了...!?!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多