Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/104.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
当用户在iOS的UITextField中输入值时,可以连续更新UILabel文本_Ios_Objective C_Swift_Uitextfield_Uilabel - Fatal编程技术网

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

当用户在iOS的UITextField中输入值时,可以连续更新UILabel文本,ios,objective-c,swift,uitextfield,uilabel,Ios,Objective C,Swift,Uitextfield,Uilabel,在我的应用程序中,我有一个UILabel和UITextField。最初ui标签文本为零。 只要用户在UITextFieldmyUILabeltext中输入一些文本,文本也会更新 假设当用户在UITextFieldmyUILabel中输入A时,立即在UITextFieldmyUILabel中显示A、B,依此类推 为了实现这种行为,我使用了UITextFieldDelegate的shouldChangeCharactersInRange函数。但它总是在一个角色后面。说出UITextFieldtext

在我的应用程序中,我有一个
UILabel
UITextField
。最初
ui标签
文本为零。
只要用户在
UITextField
my
UILabel
text中输入一些文本,文本也会更新

假设当用户在
UITextField
my
UILabel
中输入A时,立即在
UITextField
my
UILabel
中显示A、B,依此类推

为了实现这种行为,我使用了
UITextFieldDelegate
shouldChangeCharactersInRange
函数。但它总是在一个角色后面。说出
UITextField
text=qwerty my
UIlabel
text显示qwert

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

这是我的密码

 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];
textfielddichange
函数中更新标签:

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

要决定是否允许即将进行的更改,还需要使用函数
shouldChangeCharactersRange
,您可以使用以下代码更改文本:

-(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;
}
Swift中的

注册编辑事件

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


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

请在
shouldChangeCharactersRange
Nope中显示您的代码,如OP报告所示,该代码将落后1个字符。在
UIControlEventEditingChanged
事件上设置操作是正确答案。