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