ゲーム内のプレイヤーがハイスコアのために自分の名前を入力できるテキスト フィールドを作成する必要があります。この質問に従いました: UITextField Example in Cocos2d、キーボードでテキストフィールドを正常に作成しました。ただし、テキストフィールドのテキストは白で、背景色も白であるため、テキストフィールドは表示されず、キーボードのみが表示されます。
コードは次のとおりです。
appdelegate.h
#import "KKAppDelegate.h"
@interface AppDelegate : KKAppDelegate
{
UITextField *nameTextField;
}
-(void)specifyPlayerName;
@end
appdelegate.m
@implementation AppDelegate
-(void) initializationComplete
{
#ifdef KK_ARC_ENABLED
CCLOG(@"ARC is enabled");
#else
CCLOG(@"ARC is either not available or not enabled");
#endif
}
- (void)specifyPlayerName
{
NSLog(@"called");
nameTextField = [[UITextField alloc] initWithFrame:CGRectMake(60, 165, 200, 90)];
[nameTextField setDelegate:self];
[nameTextField setText:@""];
[nameTextField setTextColor: [UIColor colorWithRed:0 green:0 blue:0 alpha:1.0]];
[[[[CCDirector sharedDirector] openGLView] window] addSubview:nameTextField];
[nameTextField becomeFirstResponder];
}
- (BOOL)textFieldShouldReturn:(UITextField*)textField {
//Terminate editing
[textField resignFirstResponder];
return YES;
}
- (void)textFieldDidEndEditing:(UITextField*)textField {
if (textField==nameTextField) {
[nameTextField endEditing:YES];
// here is where you should do something with the data they entered
GameData* data = [GameData sharedData];
data.playerName = nameTextField.text;
NSLog(@"entered: %@", data.playerName);
}
}
メソッドが別のクラス/ボタンから呼び出されています
[[[UIApplication sharedApplication] delegate]performSelector:@selector(specifyPlayerName)];
テキストフィールドの色を設定しようとしましたが、まだすべて白として表示されています。どんな助けでも大歓迎です。