Ios 使用apple键盘中的返回按钮进行导航
我的视图控制器中有多个文本字段。如何使用IOS键盘上的返回按钮从一个文本字段导航到另一个文本字段 使用Ios 使用apple键盘中的返回按钮进行导航,ios,objective-c,xcode,xcode6,Ios,Objective C,Xcode,Xcode6,我的视图控制器中有多个文本字段。如何使用IOS键盘上的返回按钮从一个文本字段导航到另一个文本字段 使用UITextFieldDelegate委托,并且textfield应返回:方法。在内部,您可以获得传入参数的textfield标记,并根据此信息指向另一个标记 -(BOOL) textFieldShouldReturn: (UITextField *) textField { [textField resignFirstResponder]; if(textField ==
UITextFieldDelegate
委托,并且textfield应返回:
方法。在内部,您可以获得传入参数的textfield
标记,并根据此信息指向另一个标记
-(BOOL) textFieldShouldReturn: (UITextField *) textField
{
[textField resignFirstResponder];
if(textField == _your1stTextField)
[_your2ndTextField becomeFirstResponder];
return YES;
}
要使代理工作,您必须将发送方的委托属性(textfield)设置为接收方(例如,您的视图控制器)
或者在故事板中执行()。然后,视图控制器需要按如下方式指定此委托(在“h”文件中):
试试这个
将委托设置为所有文本字段,然后
- (BOOL)textFieldShouldReturn:(UITextField *)textField
{
if (textField == textField1)
{
[textField2 becomeFirstResponder];
}
else if (textField == textField2)
{
[textField3 becomeFirstResponder];
}
else if textField == textField3)
{
[textField4 becomeFirstResponder];
}
.
.
.
[textField resignFirstResponder];
return YES;
}
我认为这个解决方案更具动态性,因为它适用于任意数量的文本字段,只要superview没有标记==lastTextField.tag+1的视图 在viewDidLoad中:
- (void)viewDidLoad
{
[super viewDidLoad];
self.textField1.delegate = self;
self.textField2.delegate = self;
...
self.lastTextField.delegate = self;
self.textField1.tag = 1;
self.textField2.tag = 2;
...
self.lastTextField.tag = n;
}
然后实现textFieldDelegate:
-(BOOL) textFieldShouldReturn:(UITextField *)textField
{
NSInteger nextTag = textField.tag + 1;
UIResponder* nextResponder = [textField.superview viewWithTag:nextTag];
if (nextResponder)
[nextResponder becomeFirstResponder];
else
[textField resignFirstResponder];
return NO;
}
你需要在.h申报 .m集
yourTextfieldRef1.delegate=self;
yourTextfieldRef2.delegate=self;
yourTextfieldRef3.delegate=self;
yourTextfieldRef4.delegate=self;
yourTextfieldRef5.delegate=self;
.
.
.
设置
希望它能帮助你 您可以使用标记this@BHASKAR你能告诉我怎么做吗?因为我是ios新手。请告诉我这个链接是如何解决上一个按钮下一个按钮的问题。我正在我的视图控制器中编写这个方法。什么都没有改变。你是否在文本字段上设置了
委托
,以指向你的视图控制器?如果你想从中导航,请再问一个问题将文本字段转换为按钮如何操作?我还没有尝试过,但我想与UIResponder
类的becomeFirstResponder
的方法一样,UIButton
也可以使用。如果我想使用键盘上的返回按钮将文本字段转换为按钮,你知道吗,UIButton继承自UIResponder。还没有尝试过,但如果最后一个标记的视图是UIButton,它肯定会工作。
- (void)viewDidLoad
{
[super viewDidLoad];
self.textField1.delegate = self;
self.textField2.delegate = self;
...
self.lastTextField.delegate = self;
self.textField1.tag = 1;
self.textField2.tag = 2;
...
self.lastTextField.tag = n;
}
-(BOOL) textFieldShouldReturn:(UITextField *)textField
{
NSInteger nextTag = textField.tag + 1;
UIResponder* nextResponder = [textField.superview viewWithTag:nextTag];
if (nextResponder)
[nextResponder becomeFirstResponder];
else
[textField resignFirstResponder];
return NO;
}
yourTextfieldRef1.delegate=self;
yourTextfieldRef2.delegate=self;
yourTextfieldRef3.delegate=self;
yourTextfieldRef4.delegate=self;
yourTextfieldRef5.delegate=self;
.
.
.
yourTextFieldRef1.tag=1;
yourTextFieldRef2.tag=2;
yourTextFieldRef3.tag=3;
yourTextFieldRef4.tag=4;
yourTextFieldRef5.tag=5;
.
.
.
-(BOOL)textFieldShouldReturn:(UITextField*)textField;
{
NSInteger nextTag = textField.tag + 1;
// Try to find next responder
UIResponder* nextResponder = [textField.superview viewWithTag:nextTag];
if (nextResponder) {
// Found next responder, so set it.
[nextResponder becomeFirstResponder];
} else {
// Not found, so remove keyboard.
[textField resignFirstResponder];
}
return YES;
}