2015-04-12 2 views
1

Я использую Objective-C для создания файла GameScene для iOS SpriteKit. У меня есть SKLabelNode и UITextField, чтобы ввести имя игрока.UITextField action - change SKLabelNode

Как я могу сделать значение UITextField равным для изменения SKLabelNode, чтобы сказать «Спасибо», + значение UITextField?

(мой код):

#import "GameScene.h" 

@implementation GameScene 

-(void)didMoveToView:(SKView *)view { 
// Use Objective-C to declare all SpriteKit Objects 
// inside the {parameters} of "didMoveToView" method: 


// SKLabelNodes (SpriteKit Object) display "text". 
// Objective-C object named *winner = SKLabelNode (SpriteKit Object) 
SKLabelNode *winner = [SKLabelNode labelNodeWithFontNamed:@"Tahoma"]; 
winner.text = @"You Win!"; 
winner.fontSize = 65; 
winner.fontColor = [SKColor blueColor]; 
winner.position = CGPointMake(500,500); 
[self addChild:winner]; 


// UITextFields (SpriteKit Object) allow "text" input from users. 
// Objective-C object named *textField = UITextField (SpriteKit Object) 
UITextField *textField = [[UITextField alloc] 
initWithFrame:CGRectMake(self.size.width/2, self.size.height/2+20, 200, 40)]; 
textField.center = self.view.center; 
textField.borderStyle = UITextBorderStyleRoundedRect; 
textField.textColor = [UIColor blackColor]; 
textField.font = [UIFont systemFontOfSize:17.0]; 
textField.placeholder = @"Enter your name here"; 
textField.backgroundColor = [UIColor whiteColor]; 
textField.autocorrectionType = UITextAutocorrectionTypeYes; 
textField.keyboardType = UIKeyboardTypeDefault; 
textField.clearButtonMode = UITextFieldViewModeWhileEditing; 
[self.view addSubview:textField]; 

} 

-(void)update:(CFTimeInterval)currentTime { 
/* Called before each frame is rendered */ 
} 

@end 

ответ

1

Вы должны использовать метод делегата. В частности

- (void)textFieldDidEndEditing:(UITextField *)textField; 

, чтобы сделать это, когда вы создаете ваш textFeild добавить эту строку кода

[textfield setDelegate:self] 

также добавить, что вы залежных делегата в вас файл .h

@interface ViewController : UIViewController <UITextFieldDelegate> 

затем когда этот код вызывается, вы скажете внутри метода
SKLabelNode = [NSString stringWithFormat:@"Thanks %@",textField.text]

+0

[текстовое поле setDelegate: self] показывает ошибку: тело ожидающего тела –

+0

mhmmmm. Имея эту небольшую информацию, я понятия не имею, что это может сделать. Вы также добавили 3-й кусок кода в файл .h. Когда вы добавили его, это должно было быть @interface (независимо от того, что было до этого): (что было раньше) последняя часть - это единственное, что вы должны добавить – Charlie

+0

Извините, Чарли. Я ценю ответ, касающийся действия UITextField, но решил перепрограммировать файл GameScene. Большое спасибо за то, что поделились своими знаниями для iOS dev! –

Смежные вопросы