基本请求:如何在Cocos2d应用程序中获取文本输入

miw*_*lsh 1 user-input cocos2d-iphone ios

我有我认为是一个简单的任务:在场景上创建两个输入字段并在它们上执行常用的输入方法(触摸设置输入焦点,允许使用屏幕键盘输入文本,当"完成"键时取消选择字段如果再次触摸/选择字段,则按下,重新建立输入焦点,等等,基本上是您在大多数应用程序中看到的允许用户文本输入的常用功能.

我查看了大多数iOS开发的相关论坛,特别是StackOverflow,我只看到了不完整的代码片段和模糊的引用,其中一些甚至不再存在.

我认为这将是一项简单的任务,但每个人似乎都认为模糊的方向对于那些只想简单回答的人来说已经足够了.

有人可以提供完成此任务需要完成的完整描述吗?

谢谢.

ps:在意识到我没有提供完整的信息后,这就是我正在使用的环境和工具:

图书馆框架:Cocos2D v2
开发工作室:Xcode 5.1
目标平台:iPhone,iPad和iPod touch设备上的iOS(正在进行Android平台的端口)
所需的最低iOS:6.1

luc*_*isi 6

如果您使用的是Cocos2d v3,请使用CCTextField文本输入.例如:

CCTextField *enterName = [CCTextField textFieldWithSpriteFrame:[CCSpriteFrame frameWithImageNamed:@"textfield_background.png"]];
enterName.fontSize = 16.0f;
enterName.contentSize = CGSizeMake(100.0f, 50.0f);
enterName.preferredSize =CGSizeMake(100.0f, 50.0f);
enterName.positionType = CCPositionTypeNormalized;
enterName.position = ccp(0.5f, 0.5f);
[self addChild:enterName z:5];
Run Code Online (Sandbox Code Playgroud)

如果您使用的是Cocos2d v2,请使用UIKit组件.例如:

CGSize size = [[CCDirector sharedDirector] winSize];
UITextField *textField = [[UITextField alloc] initWithFrame:CGRectMake(size.width * 0.5,
                                                                       size.height* 0.1,
                                                                       100, 100)];
textField.borderStyle = UITextBorderStyleRoundedRect;
[[[CCDirector sharedDirector] view]addSubview:textField];
Run Code Online (Sandbox Code Playgroud)

作为一个注释,Cocos2d v3实际上UITextField在iOS和NSTextFieldMac中使用了一个.

#ifdef __CC_PLATFORM_IOS
/** iOS: UITextField used by the CCTextField. */
@property (nonatomic,readonly) UITextField* textField;
#elif defined(__CC_PLATFORM_MAC)

/** Mac: NSTextField used by the CCTextField. */
@property (nonatomic,readonly) NSTextField* textField;
#endif
Run Code Online (Sandbox Code Playgroud)