1

次の CCMenuItem があります。

    menuItem = [CCMenuItemImage itemWithNormalImage:@"example.png" selectedImage:@"example2.png" disabledImage:@"example3.png" block:^(id sender) {
        // do some important things.
    }];

ここで、menuItem はグローバル インスタンス変数です。

menuItem のブロック コードをプログラムで呼び出す方法はありますか? それとも、そこに別の関数をラップしてから呼び出す必要がありますか? 例えば

    menuItem = [CCMenuItemImage itemWithNormalImage:@"example.png" selectedImage:@"example2.png" disabledImage:@"example3.png" block:^(id sender) {
        [self doThings];
    }];

    ...
    - (void) doThings {
      // do some important things.
    }

ブロックコードをプログラムで呼び出すだけです。

4

1 に答える 1

2

あなたは呼び出すことができます:

[メニューアイテムを有効にする];

ブロックまたはコールバックを呼び出します。このアプローチの唯一の注意点は、バニラ フレームワーク メソッドを使用する場合、メニュー項目を無効にしてはならないということです。( menuItem.isEnabled = YES が必要です)

ただし、2番目の方法を使用し、ラップされたメソッドを使用してそれを外部から呼び出すことを好みます。これは、前述の警告のためです。

于 2013-02-02T22:17:50.397 に答える