当用户在iOS中的UITextField中输入值时,可以不断更新UILabel文本

时间:2015-06-22 10:40:07

标签: ios objective-c swift uitextfield uilabel

在我的应用程序中,我有一个UILabelUITextField。最初UILabel文字为零。
 只要用户在UITextField我的UILabel文字中输入一些文字,也会更新。

当用户在UITextField中输入A时,我的UILabel会立即在UITextField我的UILabel节目B中显示A,B,依此类推。

为了实现此行为,我使用了shouldChangeCharactersInRange UITextFieldDelegate函数。但它始终落后于一个角色。说UITextField text = qwerty my UIlabel text show qwert

请帮助我,以便我可以在用户输入UILabel

中的值时不断更新UITextField文字

这是我的代码

 func textField(textField: UITextField, shouldChangeCharactersInRange range: NSRange, replacementString string: String) -> Bool {
    mylabel.text = textfield.text
   return true
}

4 个答案:

答案 0 :(得分:7)

您可以注册textField以获取值更改事件:

[textField addTarget: self action:@selector(textFieldDidChange) forControlEvents:UIControlEventEditingChanged];

并在textFieldDidChange函数中更新您的标签:

- (void)textFieldDidChange
{
    label.text = textField.text;
}

需要更多功能shouldChangeCharactersInRange来决定是否允许即将进行的更改

答案 1 :(得分:2)

您可以使用以下代码更改文字:

-(BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
{ 
   myLabel.text = [textField.text stringByReplacingCharactersInRange:range withString:string]
   return YES;
}

答案 2 :(得分:2)

In Swift

注册您的编辑活动

textfield.addTarget(self, action:"changeLabel", forControlEvents:UIControlEvents.EditingChanged)


func changeLabel(){
    myLabel.text=textfield.text
}

答案 3 :(得分:1)

您可以使用此代码易于理解:

 - (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
{
   NSString *str = [NSString stringWithFormat:@"%@%@",yourtextfield.text,string];
   NSLog(@"%@",str);
   return YES;
}