我有10个文本字段,其中我只能在每个文本字段中输入一个字符。在每个文本字段中输入字符后,焦点应移至下一个字段。类似地,当我通过按退格键或删除来删除文本字段中的字符时,我需要将焦点转到上一个文本字段。如果我能得到keypressed事件,我可以做到这一点。现在我无法找到任何按键事件示例。
答案 0 :(得分:8)
在协议中实现委托方法。你可以实现你想要的东西。
您可以使用方法becomeFirstResponder
将焦点设置为所需的文本字段。
查看委托方法
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
只要用户在文本字段中键入新字符或删除现有字符,文本字段就会调用此方法。
这样可以解决您的问题。
答案 1 :(得分:4)
根据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;
}
答案 2 :(得分:0)
只是为了给你指示:
提示:您可以使用[mainView viewWithTag:XX]
快速选择所需的文本字段。
每次更改文本时,您都可以检查文本字段的文本属性,它将为您提供按下按钮的答案。
答案 3 :(得分:0)
你必须在你的代码中实现UITextFieldDelegate协议,这个方法会告诉你何时开始在文本字段中开始编辑
- textFieldShouldBeginEditing:
您可以根据您的要求在此方法中设置if条件......
答案 4 :(得分:0)
您必须使用textfieldDelegate
方法。
在textFieldShouldReturn
方法中,您必须将响应者设置为
if (textfield == textField1)
{
[textField2 becomeFirstResponder];
}
else if (textField == textField2)
{
[textField3 becomeFirstResponder];
}
else
{
[textField3 resignFirstResponder];
}
return YES; // as method return type is BOOL.