当UIReturnKeyNext后,想让光标直接指向下一个textField应该怎么做呢?老师?

来源:3-23 UITextField小结

Mr_Steven

2017-09-06 00:18:49

/*当UIReturnKeyNext后,想让光标直接指向下一个textField应该怎么做呢?老师?
我现在已经使用 UIView对象将下一个要指向的textField获取到了,但是不知道怎么将焦点聚集到该输入框内并弹出键盘来*/
//tag = 1 为输入框1     tag = 2为输入框2 
-(BOOL)textFieldShouldReturn:(UITextField *)textField{
    [self resignFirstResponder];
    //如果是tag1的输入框 ,将直接指向下一个输入框内容,并弹出键盘直接输入 这样是否能够实现?
    if(self.tag == 1){
        UITextField *textField = (UITextField*)[self.superview viewWithTag:2];
        textField.editing;
    }
    
    return true;
}


写回答

2回答

Tender10

2017-09-06

给你写了一个小案例,你可以自己体会一下切换的过程,如下所示:

#import "ViewController.h"

@interface ViewController ()<UITextFieldDelegate>
@property(nonatomic,strong)UITextField *textField1;
@property(nonatomic,strong)UITextField *textField2;
@end

@implementation ViewController

- (void)viewDidLoad {
    [super viewDidLoad];
    self.textField1 = [[UITextField alloc] initWithFrame:CGRectMake(10, 10, 100, 20)];
    self.textField1.delegate = self;
    self.textField1.placeholder = @"账号:";
    self.textField1.tag = 101;
    [self.view addSubview:self.textField1];
    
    self.textField2 = [[UITextField alloc] initWithFrame:CGRectMake(10, 50, 100, 20)];
    self.textField2.delegate = self;
    self.textField2.placeholder = @"密码:";
    self.textField2.tag = 102;
    [self.view addSubview:self.textField2];

}

-(BOOL)textFieldShouldReturn:(UITextField *)textField{
    
    if(textField.tag == 101){
        [textField resignFirstResponder];
        [self.textField2 becomeFirstResponder];
    }else{
        [textField resignFirstResponder];
        [self.textField1 becomeFirstResponder];
    }
    return YES;
}

如果有什么看不明白的地方,可以在问答里进行提问哦~

0
hr_Steven
h 非常感谢!之前居然用错了方法 居然离真相只有一步之遥了 哈哈哈
h017-09-07
共1条回复

Tender10

2017-09-06

这个时候应该是获取到第二个textField之后,让第二个textField变成第一响应者,取消第一个textField的第一响应者,这样点击return之后,就会跳转到第二个textField上。


0
hender10
回复
hr_Steven
h 你将第二个UITextField调用becomeFirstResponder这个属性。
h017-09-06
共4条回复

0 学习 · 1878 问题

查看课程