在我的应用程序中,我有一个UILabel
和UITextField
。最初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
}
答案 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;
}