2012-05-20 2 views
0

У меня проблема с добавлением метода target/action в мое приложение. Вот мой код:UIControl - addTarget: действие: forControlEvents не вызывает метод внутри селектора

-(void)printInConsole 
{ 
    NSLog(@"2"); 
} 

-(void)createGCButton 
{ 
    UIButton * LButton = [UIButton buttonWithType:UIButtonTypeRoundedRect]; 
    LButton.frame = CGRectMake(200, 90, 100, 50); 
    [LButton setTitle:@"L" forState:UIControlStateNormal]; 
    [self.view addSubview:LButton]; 
    [LButton addTarget:self action:@selector(printInConsole)forControlEvents:UIControlEventTouchUpInside]; 
} 

Итак, сначала я попробовал один метод игрового центра, и я не работал. И теперь я добавляю этот простой метод NSLog, и он также не работает. Консоль ничего не записывает. Итак, где проблема. Если вам нужна дополнительная информация о моем коде, просто скажите об этом, и я опубликую его. Да благословит Бог тот, кто решает эту проблему.

С уважением, Klemen

+0

Когда вы нажимаете кнопку, похоже, что она нажата (т. Е. Меняет цвета)? – Joel

+0

Вставляет этот код в чистый проект, поэтому проблема не в том коде, который вы опубликовали. Вы случайно используете UITapRecognizers в своем представлении? Вы используете ARC? –

+0

@Joel кнопка изменить цвет –

ответ

1

Проблема, скорее всего, с UITapGestureRecognizer. Вы можете увидеть это blog post Я сделал о проблеме.

В принципе, вам необходимо реализовать метод делегата UITapGestureRecognizer и сказать, чтобы он не путался с кнопками.

- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch 
{ 
    return ![touch.view isKindOfClass:[UIButton class]]; 
}