当用户在 iOS 的 UITextField 中输入值时,可以不断更新 UILabel 文本
It is possible to continuously update the UILabel text as user enter value in UITextField in iOS
在我的应用程序中,我有一个 UILabel
和 UITextField
。最初 UILabel
文本为零。
一旦用户在 UITextField
中输入一些文本,我的 UILabel
文本也会更新。
假设当用户在 UITextField
中输入 A 我的 UILabel
立即显示 A,B 在 UITextField
我的 UILabel
显示 B 等等。
为了实现此行为,我使用了 UITextFieldDelegate
的 shouldChangeCharactersInRange
函数。但它总是在一个字符后面。说 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
}
在我的应用程序中,我有一个 UILabel
和 UITextField
。最初 UILabel
文本为零。
一旦用户在 UITextField
中输入一些文本,我的 UILabel
文本也会更新。
假设当用户在 UITextField
中输入 A 我的 UILabel
立即显示 A,B 在 UITextField
我的 UILabel
显示 B 等等。
为了实现此行为,我使用了 UITextFieldDelegate
的 shouldChangeCharactersInRange
函数。但它总是在一个字符后面。说 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
}