UITextField的使用

UITextField是输入字符的视图控件

1 UIView的子类,具有与view一样的属性

2 字符输入只能是单行输入,不能换行,也不能多行输入

3 与自己特有的属性

4 textfield通常要设置其代理,并实现相应的代理方法

5 主要使用场景,如:登录页面中输入帐号密码,或输入手机号,或输入昵称等方面

6 使用注意事项:

1)输入键盘的显示,以及隐藏;

2)输入时避免输入框被键盘遮挡;


// 实例化
UITextField *textfield001 = [[UITextField alloc] initWithFrame:CGRectMake(10.0, 50.0, 200.0, 30.0)];
    
// 添加到父视图
[self.view addSubview:textfield001];
    
// 设置背景颜色
textfield001.backgroundColor = [UIColor redColor];
    
// 设置边框属性
textfield001.layer.cornerRadius = 10.0;
textfield001.layer.masksToBounds = YES;
textfield001.layer.borderColor = [UIColor yellowColor].CGColor;
textfield001.layer.borderWidth = 1.0;


// 字体设置
// 占位符,即提示信息
textfield001.placeholder = @"我是单行字符输入框";
// 字体颜色
textfield001.textColor = [UIColor yellowColor];
// 字体对方方式
textfield001.textAlignment = NSTextAlignmentRight;
// 光鼠标颜色
textfield001.tintColor = [UIColor greenColor];
// 字体大小
textfield001.font = [UIFont systemFontOfSize:10.0];


// 其他属性
// 左间距视图及模式
UIImageView *leftImage = [[UIImageView alloc] initWithFrame:CGRectMake(0.0, 0.0, 30.0, 30.0)];
leftImage.contentMode = UIViewContentModeScaleAspectFit;
leftImage.image = [UIImage imageNamed:@"leftImage"];
textfield001.leftView = leftImage;
textfield001.leftViewMode = UITextFieldViewModeAlways;
// 右间距视图及模式,若再设置清除按钮,则清除按钮是无效的,即两者不能同时设置
// UIImageView *rightImage = [[UIImageView alloc] initWithFrame:CGRectMake(0.0, 0.0, 30.0, 30.0)];
// rightImage.contentMode = UIViewContentModeScaleAspectFit;
// rightImage.image = [UIImage imageNamed:@"rightImage"];
// textfield001.rightView = rightImage;
// textfield001.rightViewMode = UITextFieldViewModeAlways;
// 清除按钮,如果设置了右间距视图,则无效,即两者不能同时设置
textfield001.clearButtonMode = UITextFieldViewModeWhileEditing;
// 键盘类型
textfield001.keyboardType = UIKeyboardTypeDefault;
// 键盘中回车键类型
textfield001.returnKeyType = UIReturnKeySend;
// 键盘中回车键有输入时,回车键才可点击,默认是可点击,即NO
textfield001.enablesReturnKeyAutomatically = NO;
// 输入框字符明文,或密文方式,默认是明文,即NO
textfield001.secureTextEntry = NO;


// 设置代理
/*
1 代理通常设置其他需要实现textfile代理方法的对象
2 要设置协议
3 实现协议方法
*/
textfield001.delegate = self;

@interface ViewController () <UITextFieldDelegate>

@end

// 输入源视图,默认是键盘,可通过设置输入源视图是其他控件,或自定义控件
// textfield001.inputView = [[UIView alloc] initWithFrame:CGRectMake(0.0, 0.0, 320.0, 300.0)];
// 输入源视图中的顶端视图,默认是没有的
UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom];
button.backgroundColor = [UIColor colorWithWhite:0.0 alpha:0.3];
button.frame = CGRectMake(0.0, 0.0, CGRectGetWidth(self.view.bounds), 40.0);
[button setTitle:@"隐藏键盘" forState:UIControlStateNormal];
[button setTitleColor:[UIColor redColor] forState:UIControlStateNormal];
[button setTitleColor:[UIColor yellowColor] forState:UIControlStateHighlighted];
[button addTarget:self action:@selector(hiddenKeyboard) forControlEvents:UIControlEventTouchUpInside];
textfield001.inputAccessoryView = button;

// UITextFieldDelegate

// 即将开始编辑
- (BOOL)textFieldShouldBeginEditing:(UITextField *)textField
{
    NSLog(@"即将开始编辑");
    return YES;
}

// 已经开始编辑
- (void)textFieldDidBeginEditing:(UITextField *)textField
{
    NSLog(@"已经开始编辑");
}

// 即将结束编辑
- (BOOL)textFieldShouldEndEditing:(UITextField *)textField
{
    NSLog(@"即将结束编辑");
    return YES;
}

// 已经结束编辑
- (void)textFieldDidEndEditing:(UITextField *)textField
{
    NSLog(@"已经结束编辑");
}

// 正在编辑
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
{
    NSLog(@"正在编辑 = %@", textField.text);
    
    /*
     1 常用来获取当前输入的信息
     2 用来判断当前的输入是否限制的字符,如限制只能输入大小写字母,或只能输入数字等
     3 用来判断输入的字符长度限制
    */
    
    
    return YES;
}

// 应该清除
- (BOOL)textFieldShouldClear:(UITextField *)textField
{
    NSLog(@"点击了清除键");
    
    return YES;
}

// 应该回车
- (BOOL)textFieldShouldReturn:(UITextField *)textField
{
    NSLog(@"点击了回车键");
    
    // 隐藏键盘
    // 方法1 失去第一响应
//    [textField resignFirstResponder];
    // 方法2 结束编辑
    [textField endEditing:YES];
    
    return YES;
}

- (void)hiddenKeyboard
{
    // 当前视图结束编辑
    [self.view endEditing:YES];
}





  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

番薯大佬

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值