【问题标题】:UITextField action - change SKLabelNodeUITextField 操作 - 更改 SKLabelNode
【发布时间】:2015-04-12 01:49:24
【问题描述】:

我正在使用 Objective-C 来制作 iOS SpriteKit“GameScene”文件。 我有一个 SKLabelNode 和一个 UITextField 来输入玩家的名字。

如何使 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

【问题讨论】:

    标签: ios objective-c uitextfield sklabelnode


    【解决方案1】:

    您需要使用委托方法。具体

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

    要在创建 textFeild 时执行此操作,请添加这行代码

    [textfield setDelegate:self]
    

    还要添加您在 .h 文件中的委托

    @interface ViewController : UIViewController <UITextFieldDelegate>
    

    然后当调用该代码时,您会在方法内部说
    SKLabelNode = [NSString stringWithFormat:@"Thanks %@",textField.text]

    【讨论】:

    • [textfield setDelegate:self] 显示错误:期望方法主体
    • 嗯嗯嗯。仅凭那一点点信息,我不知道是什么原因造成的。您是否还将第三段代码添加到 .h 文件中。当你添加它时,它应该是@interface(以前有什么):(以前有什么) 最后一部分是你唯一应该添加的东西
    • 对不起,查理。我很欣赏有关 UITextField 操作的答案,但决定重新编程 GameScene 文件。非常感谢您分享您的 iOS 开发知识!
    • 只要遵循之前编写的所有 3 条规则,它就可以工作!特别是 @interface ViewController : UIViewController 完成了。记住人们,将 放在 THE.h 文件中!!!不是 .m 文件!另外,请确保您的 SKScene .m 文件也有
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-06-13
    • 1970-01-01
    • 2023-03-18
    相关资源
    最近更新 更多