如何在 Cocos2d v3 中设置 CCTextField

Posted

技术标签:

【中文标题】如何在 Cocos2d v3 中设置 CCTextField【英文标题】:How to setup a CCTextField in Cocos2d v3 【发布时间】:2014-03-11 17:11:30 【问题描述】:

这是我目前得到的:

enterName = [CCTextField textFieldWithSpriteFrame:[CCSpriteFrame frameWithImageNamed:@"Tile.png"]];
enterName.fontSize = 16.0f;
enterName.positionType = CCPositionTypeNormalized;
enterName.position = ccp(0.5f, 0.5f);
enterName.scale = 0.70f;
[self addChild:enterName z:5];

基本上,它会创建一个您几乎无法点击的微观文本字段。 CCTextField 唯一弹出的方法是“textFieldWithSpriteImage”。

额外帮助:如何存储输入后输入的字符串。 干杯。

【问题讨论】:

尝试更改 contentSize 谢谢。我删除了enterName.scale = 0.70f;并添加了enterName.contentSize = CGSizeMake(100.0f, 50.0f);,它仍然是微观的 【参考方案1】:

为了防止Cocos2d中出现微观CCTextFields,请务必设置preferredSize

这是防止微观文本字段的代码:

CCSprite *textSprite = [CCSprite spriteWithImageNamed:@"Tile.png"];
enterName = [CCTextField textFieldWithSpriteFrame:[CCSpriteFrame frameWithImageNamed:@"Tile.png"]];
enterName.fontSize = 16.0f;
enterName.contentSize = CGSizeMake(100.0f, 50.0f);
enterName.preferredSize = textSprite.contentSize; // don't forget this !
enterName.positionType = CCPositionTypeNormalized;
enterName.position = ccp(0.5f, 0.5f);
[self addChild:enterName z:5];

【讨论】:

【参考方案2】:

如果您使用的是 Cocos2d,还有其他方法可以合并文本字段。最方便的方式是Spritebuilder,类似于Storyboard。您可以在不使用代码的情况下编辑文本框的字体大小和大小。然后您只需调整文本字段,以便您可以将其连接到变量。为此,您需要更改代码连接。

我通常将此作为代码连接中的最后一个选项:

文档根变量:_whatever

然后在 MainScene.m(由 Spritebuilder 在 Xcode 中自动创建)中编写此代码并添加:

CCTextField * _whatever
//your code

发布并运行,文本字段应该是可点击的。

【讨论】:

以上是关于如何在 Cocos2d v3 中设置 CCTextField的主要内容,如果未能解决你的问题,请参考以下文章

cocos2d中设置精灵的边界框

如何在 openapi 中设置默认 API 定义 url?

如何在 Cocos2d v3 中获取一个类型的孩子

如何在Cocos2D v3.x中正确推送和弹出场景

jsapi微信支付v3版

在地图选项上设置Google Map v3大小