以编程方式调用CCMenuItem的块

时间:2013-02-02 21:07:49

标签: objective-c cocos2d-iphone

我有以下CCMenuItem:

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

其中menuItem是全局实例变量。

有没有办法以编程方式调用menuItem的块代码?或者我必须在那里包装另一个函数,然后调用它? e.g。

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

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

我更愿意以编程方式调用块代码。

1 个答案:

答案 0 :(得分:2)

您可以致电:

  

[menuItem activate];

将调用块或回调。这种方法唯一需要注意的是,要使用vanilla框架方法,不得禁用菜单项。 (必须有menuItem.isEnabled = YES)

我更喜欢使用你的第二种方法,并使用一种包装方法并在外部调用,正是因为我提到的警告。