我的文本字段不能与场景转换一起出现问题。基本上我的场景是通过这个电话过渡:
Scene* gs = [[[QuestionsScene alloc] initWithPage:2] autorelease];
[[Director sharedDirector] replaceScene: [SlideInRTransition transitionWithDuration:0.5 scene: gs]];
然而,在我的初学者中,我有一个名为的文本域:
[answerBox setTextColor:[UIColor blackColor]];
[answerBox setTextAlignment:UITextAlignmentLeft];
[answerBox setContentHorizontalAlignment:UIControlContentHorizontalAlignmentLeft];
[answerBox setClearsOnBeginEditing:YES];
[answerBox setBorderStyle:UITextBorderStyleRoundedRect];
[answerBox setDelegate:self];
[answerBox setReturnKeyType:UIReturnKeyDone];
[answerBox setAutocapitalizationType:UITextAutocapitalizationTypeWords];
[[[Director sharedDirector] openGLView] addSubview: answerBox];
文本框不跟随转换,它只是坐在下一个场景中。任何人都知道如何解决这个问题?
答案 0 :(得分:0)
您可以直接将answerBox添加到openGLView,而不是场景。所以当场景发生变化时,answerBox不会受到影响。
如果使用UILabel,则无法将其作为子项添加到CocosNode对象上,因此无法将其添加到场景中。
请考虑使用Cocos2d标签类。使用Label或更快的表兄LabelAtlas
我还没有检查过Cocos2d如何管理它的视图。也许还有另一种选择?你可以试试cocos2d论坛。
答案 1 :(得分:0)
对于这个解决方案,我刚刚在转换时删除了文本框
[nameBox removeFromSuperview];
当它回到现场时重新出现:
[nameBox becomeFirstResponder];
虽然有一个更顺利的过渡。