Я пытаюсь написать игру для ios с cocos2d. И я хочу создать меню с CCMenu. Но когда я использую класс CCMenuItemToggle, он отображает предупреждение типа " removeChildByTag: child not found!". На самом деле я не делаю никаких операций удаления. Когда я отлаживаю шаг за шагом, проблема сосредоточена на пункте меню, созданном с помощью CCMenuItemToggle. Так как я могу решить проблему. Спасибо за ваш совет.
- (id) init{
[super init];
[CCMenuItemFont setFontName:@"American Typewriter"];
[CCMenuItemFont setFontSize:18];
CCMenuItemFont *title1 = [CCMenuItemFont itemFromString:@"Sound"];
[title1 setIsEnabled:NO];
[CCMenuItemFont setFontName:@"Marker Felt"];
[CCMenuItemFont setFontSize:26];
//FIXME:
CCMenuItemToggle *item1 = [CCMenuItemToggle itemWithTarget:self selector:nil items:[CCMenuItemFont itemFromString:@"On"],[CCMenuItemFont itemFromString:@"Off"], nil];
[CCMenuItemFont setFontName:@"American Typewriter"];
[CCMenuItemFont setFontSize:18];
CCMenuItemFont *title2 = [CCMenuItemFont itemFromString:@"Music"];
[title2 setIsEnabled:NO];
[CCMenuItemFont setFontName:@"Marker Felt"];
[CCMenuItemFont setFontSize:26];
//FIXME:
CCMenuItemToggle *item2 = [CCMenuItemToggle itemWithTarget:self selector:nil items:[CCMenuItemFont itemFromString:@"On"],[CCMenuItemFont itemFromString:@"Off"], nil];
[CCMenuItemFont setFontName:@"Marker Felt"];
[CCMenuItemFont setFontSize:26];
CCLabelBMFont *label = [CCLabelBMFont labelWithString:@"Go back" fntFile:@"font01.fnt"];
CCMenuItemLabel *back = [CCMenuItemLabel itemWithLabel:label target:self selector:@selector(backCallback:)];
back.scale = 0.8;
CCMenu *menu = [CCMenu menuWithItems:title1,title2,item1,item2,back, nil];
[menu alignItemsInColumns:[NSNumber numberWithUnsignedInt:2],[NSNumber numberWithUnsignedInt:2],[NSNumber numberWithUnsignedInt:1], nil];
back.position = ccp(back.position.x, back.position.y-20);
[self addChild:menu];
return self;
}