ボタンが押されたときにボタンのコードを実行する方法を知っている唯一の方法は、xCodeを使用して実際にボタンのメソッドを作成することです。代わりに押されたかどうかを尋ねる if ステートメントを作成することは可能ですか? 何かのようなもの
if(button.ispressed)
{
//code here
}
編集: if ステートメントはスケジュールされたタイマーに含まれるため、常にチェックされます。
ボタンが押されたときにボタンのコードを実行する方法を知っている唯一の方法は、xCodeを使用して実際にボタンのメソッドを作成することです。代わりに押されたかどうかを尋ねる if ステートメントを作成することは可能ですか? 何かのようなもの
if(button.ispressed)
{
//code here
}
編集: if ステートメントはスケジュールされたタイマーに含まれるため、常にチェックされます。
いいえ、それはイベント ドリブン パラダイムに反するためです(「ボタンを押すとアクションが発生する」という空想的な話です)。求められたことを実行するには、画面上のボタンのいずれかが取得されたかどうかを常に確認する必要があります。押した。
あなたが達成できる最も近いことは、すべてのボタンを同じメソッドに向けてから、呼び出し元をチェックするようなものです。
たとえば、この 3 つのボタンをリンクしてみましょう (これらは@property
それらに接続されています) 。
[self.button1 addTarget:self action:@selector(weAllGotPressed:) forControlEvents:UIControlEventTouchUpInside];
[self.button2 addTarget:self action:@selector(weAllGotPressed:) forControlEvents:UIControlEventTouchUpInside];
[self.button3 addTarget:self action:@selector(weAllGotPressed:) forControlEvents:UIControlEventTouchUpInside];
そして、コールバック メソッドで次のようにします。
- (void)weAllGotPressed:(UIButton*)button
{
if (button == self.button1)
{
// Do something
}
else if (button == self.button2)
{
// Do something else
}
else if (button == self.button3)
{
// Do another thing
}
}
@property を使用してUIButton
アドレスを確認したくない場合は、ビュー タグを使用してそれらを識別することもできます。
を使用してこれを行うことができます:(id)sender
。
-(IBAction)someAction:(id)sender
{
if(sender == yourButtonInstance)
{
//yourButtonInstance is Pressed.
}
}
はい。ただし、これは、即時アクションをトリガーすることを意図していないコントロールに対してのみ実行する必要があります。たとえば、ハンドラーのない多数のチェックボックスと、ハンドラーのあるアクション ボタンがあります。
状態を維持するコントロールの状態を決定する。チェックボックスやラジオボタンなど。またはの方法state
を使用します。UIControl
NSControl
ほとんどのプッシュ ボタン (プッシュ オン/プッシュ オフ スイッチとして構成できるため、状態を維持することができます) のように、ボタンが状態を記憶していない場合、事実を記録するハンドラーなしでボタンが押されたかどうかを判断する方法はありません。
HTH