UI学习——UITextField控件


一、UITextField控件

1.基本概念

UITextField是iOS开发中常用的控件之一,用于在应用程序中接收用户的文本输入。UITextField可以放置在视图层次结构中的任何位置,并通过键盘输入文本

2.基本属性

首先在viewController的接口部分定义一个UITextField对象,如下代码所示:

#import <UIKit/UIKit.h>

@interface ViewController : UIViewController
{
    //定义一个textField
    //文本输入区域
    //例如,用户名,密码等需要输入文本文字的内容区域
    //只能输入单行的文字,不能输入或显示多行的文字
    UITextField* _textField;
}
@property (retain, nonatomic)UITextField* textField;
@end

下面在viewController的实现部分完成UITextField的一些功能

#import "ViewController.h"

@interface ViewController ()

@end

@implementation ViewController

- (void)viewDidLoad {
    [super viewDidLoad];
    //创建一个文本输入区对象
    self.textField = [[UITextField alloc] init];
    //设定文本输入区的位置
    self.textField.frame = CGRectMake(100, 100, 180, 40);
    //设置textField的内容文字
    self.textField.text = @"用户名";
    //设置文字的字体大小
    self.textField.font = [UIFont systemFontOfSize: 15];
    //设置字体的颜色
    self.textField.textColor = [UIColor blackColor];
    //设置边框的风格
    //UITextBorderStyleRoundedRect:圆角风格
    //UITextBorderStyleLine:线框风格
    //UITextBorderStyleBezel:bezel线框
    //UITextBorderStyleNone:无边框风格
    self.textField.borderStyle = UITextBorderStyleRoundedRect;
    //设置虚拟键盘风格
    //UIKeyboardTypeDefault:默认风格
    //UIKeyboardTypeNamePhonePad:字母和数字组合风格
    //UIKeyboardTypeNumberPad:纯数字风格
    self.textField.keyboardType = UIKeyboardTypeDefault;
    //提示文字信息
    //当text属性为空,显示此条信息
    //浅灰色提示文字
    self.textField.placeholder = @"请输入用户名";
    //是否作为密码输入
    //YES:作为处理,原点加密
    //NO:正常显示输入的文字
    self.textField.secureTextEntry = NO;
    
    [self.view addSubview:self.textField];

}

运行结果如下:
请添加图片描述

如果没有出现虚拟键盘的话可以在左上角的工具栏中找到I/O选项,点击后选择里边的keyboard的第三个选项
在这里插入图片描述

如果需要虚拟键盘消失的话可以调用如下函数:

//点击屏幕空白处调用此函数
- (void) touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event {
    //使虚拟键盘回收,不再作为第一消息响应者
    [self.textField resignFirstResponder];
}

之后我们点击空白处虚拟键盘就会消失了。

二、UITextFieldDelegate协议

1.基本概念

UITextFieldDelegate协议是一个iOS开发中常用的协议,用于处理UITextField的一些事件和行为。通过实现UITextFieldDelegate协议中的方法,我们可以自定义UITextField的行为,例如限制输入字符,响应特定的文本变化事件等。跳转到该协议我们可以看到如下一些函数
在这里插入图片描述
下面我们实现前四个函数。

2.基本属性

我们先在viewController接口部分定义该协议,之后在实现部分完成协议里的一些相关函数。

//UITextFieldDelegate协议里的函数

- (void)textFieldDidBeginEditing:(UITextField *)textField {
    NSLog(@"开始编辑");
}
- (void)textFieldDidEndEditing:(UITextField *)textField {
    NSLog(@"结束编辑");
}
//是否可以进行输入
//YES:可以进行输入,默认为YES
//NO不能输入文字
- (BOOL)textFieldShouldBeginEditing:(UITextField *)textField {
    return YES;
}
//是否可以结束输入
//YES:可以结束输入,默认为YES
//NO:不能结束输入文字
- (BOOL)textFieldShouldEndEditing:(UITextField *)textField {
    return YES;
}
@end

需要注意的是我们还需要在viewDidLoad函数里设置代理对象才能成功调用上述函数,代码如下:

    //设置代理对象
    self.textField.delegate = self;

运行结果如下:
在这里插入图片描述
当我们点击文本输入框时控制台会输出开始编辑,当我们点击空白部分时控制台会输出结束编辑。

如果我们在- (void)textFieldDidEndEditing:(UITextField *)textField函数里写self.textField.text = @""; 时,就会在点击空白部分清空文本输入框的内容。

总结

以上就是本篇文章的所有内容,如果对你有帮助的话请点赞支持一下~

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值