Iphone UITextField中的按键事件

Iphone UITextField中的按键事件,iphone,ios,uitextfield,Iphone,Ios,Uitextfield,我有10个文本字段,每个文本字段只能输入一个字符。在每个文本字段中输入字符后,焦点应移到下一个文本字段。类似地,当我通过按backspace或delete从文本字段中删除字符时,我需要将焦点移到上一个文本字段。如果我能得到按键事件,我就能做到。现在我找不到任何按键事件示例。实现 实现协议中的委托方法。你可以实现你想要的东西 您可以使用方法becomeFirstResponder将焦点设置为所需的文本字段 请看一下委托方法 -(BOOL)textField:(UITextField*)textFi

我有10个文本字段,每个文本字段只能输入一个字符。在每个文本字段中输入字符后,焦点应移到下一个文本字段。类似地,当我通过按backspace或delete从文本字段中删除字符时,我需要将焦点移到上一个文本字段。如果我能得到按键事件,我就能做到。现在我找不到任何按键事件示例。

实现

实现协议中的委托方法。你可以实现你想要的东西

您可以使用方法
becomeFirstResponder
将焦点设置为所需的文本字段

请看一下委托方法

-(BOOL)textField:(UITextField*)textField应更改字符范围:(NSRange)范围替换字符串:(NSString*)字符串

每当用户在文本字段中键入新字符或删除现有字符时,文本字段都会调用此方法


这样就可以解决您的问题。

只是给您指路:

  • 为每个文本字段指定标记
  • 。这里有检测文本字段中发生的任何事件所需的所有方法。在每种方法中,您都可以检查标记并正确移动焦点
  • 提示:您可以使用
    [mainView view with tag:XX]
    快速选择所需的文本字段


    每次更改文本时,您可以检查文本字段的文本属性,它将为您提供按下哪个按钮的答案。

    您必须在代码中实现UITextFieldDelegate协议,此方法将告诉您何时开始在文本字段中编辑

    –文本字段应开始编辑:


    您可以根据需要在此方法中设置if条件…

    您必须使用
    textfieldDelegate
    方法

    文本字段shouldReturn
    方法中,您必须将响应者设置为

    if (textfield == textField1)
    {
        [textField2 becomeFirstResponder];
    }
    else if (textField == textField2)
    {
        [textField3 becomeFirstResponder];
    }
    else
    {
        [textField3 resignFirstResponder];
    }
    
    return YES; // as method return type is BOOL.
    

    根据Aadhira的回答,但考虑到Kirk Woll的评论,您可以使用
    stringByReplacingCharactersInRange
    生成最新文本:

    - (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
    {
      NSString *value = [textField.text stringByReplacingCharactersInRange:range withString:string];
      NSLog(@"value: %@", value);
      return YES;
    }
    

    我希望当第一个textFeild退出响应程序时,您应该编写逻辑,然后第二个textFeild将成为响应程序。为TESTFEILD放置标记,并使用标记从视图中获取textFeild。为循环写入如何检测按下的特定键是退格还是删除?请看,无论如何,您只支持一个字符。输入一个字符后,您将获得字符串的长度并移动到下一个字段。如果他删除字符,那么长度将变为零。然后,移动到上一个。你实现的那种逻辑。这只是一个想法。这种方法的问题是,您总是落后一个字符,因为如果您查询
    .Text
    属性,它将具有旧值,我不确定如何获得返回
    true
    后它将具有的值。Kirk Woll有什么解决方案吗