Селектор UIButton не вызывается - PullRequest
1 голос
/ 26 августа 2011

У меня есть UIButton внутри класса.Я хочу установить цель для кнопки следующим образом.

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

По какой-то причине селектор никогда не вызывается, когда я нажимаю кнопку.Я попытался отладить проблему, выполнив следующее, но я получил ноль для NSSet

NSSet *allTargets = [myController.dateButton allTargets];

Любые предложения о том, что я могу делать неправильно?

Селектор определяется следующим образом:

- (void)showAction:(id)sender
{
   // Do stuff
}

1 Ответ

4 голосов
/ 26 августа 2011

Может быть, это решение, потому что я не думаю, что в вашем коде что-то не так.

Когда вы объявляете свою кнопку как

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");
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...