2017-01-27 3 views
0

В каком случае IBAction может быть вызван какао с отключенным отправителем?IBAction, вызванный с отправителем, отключен

У меня есть следующий код

- (IBAction)onMuteTap:(UIButton*)sender { 
    if (!sender.enabled) { 
     // Whatever 1 
    } 
    // Whatever 2 
} 

я поставил точку останова в Whatever 1, который иногда называют, если я продолжать нажимать на кнопку, связанную. Этот if предназначен только для отладки, потому что я предположил, что IBAction никогда не будет вызван с отключенным отправителем, что, казалось, было ложным предположением.

Просто комплементарной информация, кнопка была явно отключена мной в другой части кода с

... 
muteButton.enabled = NO; 
... 

[EDIT] Оба кода выполняется в основном потоке.

The sender has the same address of _muteButton

+0

Существует код. Какой бы ни был 1 - это какой-либо код. На самом деле это NSLog. –

+0

Отключена ли кнопка? Является ли 'muteButton.enabled = NO?' Вызванным в основном потоке? Являются ли 'muteButton' и' sender 'одинаковым адресом? – Willeke

+0

Я увольняю взгляд на некоторые моменты позже, так что это трудно понять. Позвольте мне попытаться не уволить и посмотреть кнопку. Оба кода работают на основном потоке. Я проверю адреса, но даже если они не были, отправитель, безусловно, отключен. Я приложу ss отладчика. –

ответ

0

IBAction это просто метод, как и любой другой. Вы можете назвать это как любой другой метод. Поэтому, если вы передадите отключенное управление в качестве параметра:

button.enabled = NO; 
[self onMuteTap:button]; 

вы получаете свой «отправитель отключен».

+0

Действительно, я не был достаточно конкретным. Звонок был сделан какао. Единственным, кто вызывает этот метод, является пользовательский интерфейс. Позвольте мне изменить свой вопрос. –