【发布时间】:2013-08-16 04:56:33
【问题描述】:
我有 4 个文本字段,我想通过单击返回键来执行以下操作 -
1-当我在一个字段中输入并按回车键时,光标应该跳到下一个
文本字段。
谢谢。
【问题讨论】:
标签: ios cocoa-touch uitextfield
我有 4 个文本字段,我想通过单击返回键来执行以下操作 -
1-当我在一个字段中输入并按回车键时,光标应该跳到下一个
文本字段。
谢谢。
【问题讨论】:
标签: ios cocoa-touch uitextfield
实现UITextField 委托并将标签值设置为系列中的所有文本字段。像1,2,3..等等。然后,确保scrollView 和 textField 标记值不冲突。
-(BOOL)textFieldShouldReturn:(UITextField *)textField
{
int nextTextFieldTag = textField.tag+1;
UITextField *textFieldd = (UITextField*)[self.view viewWithTag:nextTextFieldTag];
if (textFieldd!=nil) {
if ([textField isKindOfClass:[UITextField class]]) {
[textFieldd becomeFirstResponder];
return NO;
}
}
return YES;
}
【讨论】:
UITextField,而我有一个标签为 2 的 UIView,你会怎么做,它会为viewWithTag 返回哪个?你会如何处理这种情况?在哪里检查以确保它是UITextField?
viewWithTag 感到担忧,但这会奏效。
试试这个
将 4 个文本字段作为 textfield1,textfield2,textfile3,textfield4 。
在文本域委托方法中
- (BOOL)textFieldShouldReturn:(UITextField *)textField
{
if([textField isEqual:textfield1])
{
[textfield2 becomeFirstResponder];
return NO;
}
else if([textField isEqual:textfield2])
{
[textfield3 becomeFirstResponder];
return NO;
}
// Do for other textfields
return YES;
}
【讨论】:
您只需要知道下一个 TextField 应该是什么并实现 UITextFieldDelegateProtocol 尤其是 - (BOOL)textFieldShouldReturn:(UITextField *)textField。
在- (BOOL)textFieldShouldReturn:(UITextField *)textField 中只需找出下一个TextField 并执行[nextTextField becomeFirstResponder];
所以- (BOOL)textFieldShouldReturn:(UITextField *)textField 方法可能如下所示:
- (BOOL)textFieldShouldReturn:(UITextField *)textField
{
if ([textField isEqual:firstTextField]) {
[secondTextField becomeFirstResponder];
}
//When last textfield dismiss the keyboard
else if ([textField lastTextField]) {
[textField resignFirstResponder];
}
return NO;
}
【讨论】: