如何将一个文本字段中的值同时显示到另一个文本字段

Posted

技术标签:

【中文标题】如何将一个文本字段中的值同时显示到另一个文本字段【英文标题】:how can i display simultaneously values in one text field to another text field 【发布时间】:2010-12-15 15:41:25 【问题描述】:

我做了一个带有两个文本字段的简单应用程序。

我需要在第二个文本字段中打印,与同时在第一个文本字段中输入的内容相同。

为此,我正在编写休闲代码。

- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
 
   [textfield2 setText:textfield1.text]; 


但它从第二个值打印。

例如文本字段1 = 111;

它在文本字段中显示为 11;

怎么了。

我需要同时在文本字段 1 到文本字段 2 中准确输入的内容。

谁能帮帮我。

提前谢谢你。

【问题讨论】:

@MaheshBabu 正如@EvanMulawski 指出的那样,您使用了错误的事件处理程序。您正在使用的shouldChangeCharactersInRange,发生在第一个文本字段更改之前,这就是为什么它以“shouldChange”开头,这是英语的将来时,而不是“changed”,后者是英语的过去式。 【参考方案1】:

设置事件处理程序(或使用接口生成器):

[textField1 addTarget:self 
               action:@selector(textFieldEditingDidChange:)
     forControlEvents:UIControlEventEditingChanged];

方法:

- (void)textFieldEditingDidChange:(UITextField *)sender

    textField2.text = sender.text;

当文本字段的值改变时,它调用上面的方法,设置第二个文本字段的值。

代码更改自:Getting the Value of a UITextField as keystrokes are entered?

【讨论】:

【参考方案2】:

你可以这样做

    - (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
 
    NSMutableString *localString = textfield2.text;
     if([string isEqualToString:@""])
         [localString replaceCharactersInRange:NSMakeRange([localString length]-1, 1) 
                                    withString:@""];
     else
         [localString appendString:string];
     
     textfield2.text = localString;


:D

【讨论】:

以上是关于如何将一个文本字段中的值同时显示到另一个文本字段的主要内容,如果未能解决你的问题,请参考以下文章

当用户以编程方式单击swift ios中的删除按钮时,如何将光标从一个文本字段自动移动到另一个文本字段?

跨越文本输入字段?

将文本输入到另一个输入字段时清除输入字段

从一个文本字段转到另一个

如何过滤掉 teradata 文本字段中的非数字值?

如何在swift ios中自动将光标从一个文本字段移动到另一个文本字段?