两个TextField,输入第一个点击键盘右下角next,光标显示在第二个里面,并且右下角为完成按钮,点击收回键盘

这篇博客介绍了如何在iOS应用中实现两个TextField之间的焦点切换,并在输入完成后自动收起键盘。通过设置UITextField的代理方法和returnKeyType属性,使得用户在输入第一个TextField后,点击键盘的'next'键能自动跳转到第二个TextField,同时第二个TextField的右下角显示'完成'按钮,点击后可以隐藏键盘。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

#import <UIKit/UIKit.h>

@interface MainViewController : UIViewController<UITextFieldDelegate>
{
    UITextField * _field;
    UITextField * _field2;
}
@end

#import "MainViewController.h"

@interface MainViewController ()

@end

@implementation MainViewController

- (void)dealloc{
    [super dealloc];
}

- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
    self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
    if (self) {
        // Custom initialization
    }
    return self;
}

- (void)viewDidLoad
{
    [super viewDidLoad];
    // Do any additional setup after loading the view.
    
    //设置大小
    _field = [[UITextField alloc] initWithFrame:CGRectMake(40, 40, 240, 40)];
    //设置边框样式
    [_field setBorderStyle:UITextBorderStyleRoundedRect];
    //暗示文字
    _field.placeholder = @"请输入用户名/手机号/邮箱";
    //是否在输入的时候清空输入框
    _field.clearsOnBeginEditing = YES;
    //文字左对齐
    [_field setTextAlignment:NSTextAlignmentLeft];
    [_field setTextColor:[UIColor blueColor]];
    //键盘return 字样
    _field.returnKeyType = UIReturnKeyNext;
    //设置代理人
    _field.delegate = self;
    
    [self.view addSubview:_field];
    [_field release];
    
    
    _field2 = [[UITextField alloc] initWithFrame:CGRectMake(40, 120, 240, 40)];
    [_field2 setBorderStyle:UITextBorderStyleRoundedRect];
    _field2.placeholder = @"请输入密码";
    //是否以圆点样式输入
    _field2.secureTextEntry = YES;
    _field2.returnKeyType = UIReturnKeyDone;
    [_field2 setTextAlignment:NSTextAlignmentLeft];
    [_field2 setTextColor:[UIColor magentaColor]];
    _field2.delegate = self;
    
    [self.view addSubview:_field2];
    [_field release];
    
    
}


- (BOOL)textFieldShouldReturn:(UITextField *)textField{
    //如果textField在第一个field中,将第二个field设为第一响应者
    if (textField == _field) {
        [_field2 becomeFirstResponder];
    }else{
        //否则取消field2作为第一响应者
        [_field2 resignFirstResponder];
    }
    return YES;
}


- (void)didReceiveMemoryWarning
{
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}


@end




评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值