0

似たような質問と回答がたくさんありますが、それらは主な問題を解決していません: cocos2d でテキスト フィールドを適切に追加し、その実行可能なデリゲートを使用する方法です。

たとえば、UITextfield を作成して [[CCDirector sharedDirector] ビュー] に追加すると、textFieldShouldReturn: メソッドのみが呼び出されます。textViewDidBeginEditing であっても、機能しないメソッドはもうありません。

別のビューとUITextFieldを使用しても同じ結果が得られました。また、別の UIViewController を作成して、そのビューを UITextField で使用しようとしましたが、アプリが落ちることさえあります

4

2 に答える 2

1

CCNode1: 以下が含まれていることを確認してくださいUITextFieldDelegate

@interface MyLayer : CCLayer <UITextFieldDelegate>

2: 通常どおり UITextField を初期化します。

UITextField *nameField = [[UITextField alloc] initWithFrame:CGRectMake(0, 0, fieldWidth, fieldHeight)];
            nameField.textAlignment = NSTextAlignmentCenter;
            nameField.font = [UIFont fontWithName:kFontName size:24];
            nameField.text = @"Enter Name";
            nameField.delegate = self;
            nameField.backgroundColor = [UIColor grayColor];
            nameField.textColor = [UIColor whiteColor];
            nameField.autocorrectionType = UITextAutocorrectionTypeNo;

CCDirector3: フィールドをビューに追加します。

[[[CCDirector sharedDirector] view] addSubview:nameField];

UITextField4: にデリゲートを実装しますCCNode

- (BOOL)textFieldShouldReturn:(UITextField*)textField
- (void)textFieldDidBeginEditing:(UITextField *)textField
于 2013-06-18T13:50:14.637 に答える