3

単一のIBActionに接続されているNSButtonがいくつかあります。メソッド内で異なるボタンを区別する必要があります。次のことを試しましたが、機能しません。

for (int i = 0; i++; i < 7) {
    if (sender == [NSString stringWithFormat:@"button%i", i+1]) 
    {
        NSLog(@"sender is button %i", i+1);
    }
}

これをどのように機能させることができますか?

4

2 に答える 2

5
-(IBAction)buttonPressed:(id)sender
{
    switch ( [sender tag] )
    {
    case 1:
    //blah blah blah
    break;

    case 2:
    //blah blah etc.
    break;
    }
}

あなたに代わって仕事をするのは気が進まないのですが……。

この行を置き換えます

if (sender == [NSString stringWithFormat:@"button%i", i+1]) 

この行で

if ([sender tag] == i) 

for ループの形式が無効であることにも注意してください。

for (int i = 0; i++; i < 7)

s/b:

for (int i = 0; i < 7; i++)
于 2010-10-20T18:54:43.353 に答える
2

btnClicked アクションの送信者は、クリックされたボタン オブジェクトです。そこから、必要な情報を取得できるはずです

-(IBAction) btnClicked: (id) sender {
  NSLog(@"Button clicked %@", sender);
  // Do something here with the variable 'sender'
}

に値を格納すると、sender.tagその方法でもボタンを決定できます。

于 2010-10-20T18:54:08.710 に答える