按键命中后iOS UItextfield重新加载

时间:2014-06-19 09:41:21

标签: ios objective-c

我正在创建一个具有TextField和TextView的简单应用程序 无论我们在textfield中写什么,都会在textview中更新(两者都在一个View中,它是Root视图)。 每当我按下键盘上的任何键时,文本字段都会更新。 我知道委托方法" textfielddidEditing"有帮助,但它只有在我们点击字段或点击返回时才有帮助。我想要每当我点击键盘上的任何东西时调用的方法。

感谢任何帮助。 我还在学习iOS

3 个答案:

答案 0 :(得分:0)

您可以使用UITextField Delegate方法。每次敲击键盘时都会调用它。根据您的要求编写代码..

-(BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
{
    if (textField.text.length>0)
    {
        self.yourtextview.text=textField.text;
    }
    return YES;

}

希望它可以帮助你..

答案 1 :(得分:0)

Vidhyanad900提到的上述代码将有效。但是如果用户删除了文本,它的if会失败。 (点击退格键或选择完整的文本并将其删除)

因此修改代码

-(BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
{
  int iNewLength = [textField length];
  if([text isEqualToString:@""])      //If text is deleted
  {
    if([textField selectedTextRange])        //If Text is Seleceted And Deleted
        iNewLength = [textField length] - [textField selectedRange].length;
    else
        iNewLength = [textField length] - 1;        
  }
  if (iNewLength > 0)
  {
    self.yourtextview.text=textField.text;
  }
  return YES;
} 

答案 2 :(得分:0)

请使用以下textfield委托方法。它简单易用,具有所有appen和delete机制。您也可以通过选择删除多个字符。只需将newString值存储到textView

即可
-(BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string {
    NSMutableString *newString = [NSMutableString stringWithString:textField.text];
    if (range.length > 0) {
        [newString replaceCharactersInRange:range withString:string];
    }
    else {
        [newString appendString:string];
    }
    NSLog(@"%@",newString);
    return YES;
}