2017-01-27 4 views
0

送信者が無効の状態でIBActionを呼び出すことはできますか?送信者を無効にしてIBActionを呼び出す

私はリンクボタンを押し続けると、時々呼ばれるWhatever 1にブレークポイントを、入れていた次のコード

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

を持っています。 この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

確かに、私は十分に具体的ではありませんでした。コールはココアによって行われました。このメソッドを呼び出すのはUIだけです。 私の質問を編集させてください。 –

関連する問題