【问题标题】:Add cocos2d menu items at run-time在运行时添加 cocos2d 菜单项
【发布时间】:2009-03-31 18:23:01
【问题描述】:

我正在尝试在运行时将可变数量的 MenuItem 对象添加到 Menu 对象。当我的游戏开始时,我真的不知道我的菜单是有 2 项还是例如 5 项。

for (MyItem* item in myItemCollection)
{
        MenuItemImage* menuItem = [MenuItemImage itemFromNormalImage:@"MenuItem.png" selectedImage:@"MenuItemSelected.png" target:self selector:@selector(options:)];
}

我现在如何将 MenuItems 添加到 Menu 对象。通过使用 addChild 我得到一个异常,我真的无法在线找到解决方案。

还有一个附带问题:我什么时候可以通过这种方式添加我的 MenuItem。如何取回我的 MenuItem 并更改它们显示的图像?

【问题讨论】:

    标签: iphone cocoa cocoa-touch cocos2d-iphone


    【解决方案1】:

    来自 NSMenu:

        - (void)addItem:(NSMenuItem *)newItem
    
    假设您有一个 NSMenu 对象来发送此消息,并且 MenuItemImage 是 NSMenuItem 的子类。

    要恢复菜单项,具体取决于您对所拥有项目的了解: – itemWithTag:
    – itemWithTitle: – itemAtIndex:

    或者您可以使用以下方法遍历项目:
    – numberOfItems
    – 项目数组

    查看 NSMenuItem 文档以获取/设置图像。

    http://developer.apple.com/documentation/Cocoa/Reference/ApplicationKit/Classes/NSMenu_Class/Reference/Reference.html

    http://developer.apple.com/documentation/Cocoa/Reference/ApplicationKit/Classes/NSMenuItem_Class/Reference/Reference.html

    【讨论】:

    • 谢谢,问题是我需要用至少一项来初始化菜单,然后才能使用 addChild 方法。经过一番研究,我想通了。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-22
    • 2014-06-02
    • 2011-11-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多