Добавить пункты меню cocos2d во время выполнения

Я пытаюсь добавить переменное количество объектов MenuItem в объект меню во время выполнения. Когда моя игра начинается, я действительно не знаю, есть ли в моем меню 2 или, например, 5 пунктов.

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

Как теперь добавить элементы меню в объект меню. Используя addChild, я получаю исключение и не могу найти решение в Интернете.

Кроме того, побочный вопрос: когда я могу добавить свой MenuItem таким образом. Как я могу вернуть свои элементы меню и изменить отображаемое ими изображение?


person Wim Haanstra    schedule 31.03.2009    source источник


Ответы (1)


Из NSMenu:

    - (void)addItem:(NSMenuItem *)newItem
Предполагая, что у вас есть объект NSMenu для отправки этого сообщения, а MenuItemImage является подклассом NSMenuItem.

Чтобы вернуть вам элементы меню, в зависимости от того, что вы знаете о предмете, который у вас есть: – itemWithTag:
– itemWithTitle: – itemAtIndex:

Или вы можете перебирать элементы, используя:
– numberOfItems
– itemArray

Ознакомьтесь с документацией 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

person Mark    schedule 31.03.2009
comment
Спасибо, проблема заключалась в том, что мне нужно было инициализировать меню хотя бы одним элементом, прежде чем я мог использовать для него метод addChild. После некоторых исследований я понял это. - person Wim Haanstra; 02.04.2009