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

It is possible to continuously update the UILabel text as user enter value in UITextField in iOS

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

假设当用户在 UITextField 中输入 A 我的 UILabel 立即显示 A,B 在 UITextField 我的 UILabel 显示 B 等等。

为了实现此行为,我使用了 UITextFieldDelegateshouldChangeCharactersInRange 函数。但它总是在一个字符后面。说 UITextField 文本 = qwerty 我的 UIlabel 文本显示 qwert

请帮助我,以便我可以在用户在 UITextField

中输入值时不断更新 UILabel 文本

这是我的代码

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

您可以为值更改事件注册您的文本字段:

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

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

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

更需要函数 shouldChangeCharactersInRange 来决定是否允许即将发生的变化

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

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

你可以使用这段代码简单易懂:

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

In Swift

注册您的编辑活动

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


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