UI学习——UITextField控件

文章目录

  • 一、UITextField控件
    • 1.基本概念
    • 2.基本属性
  • 二、UITextFieldDelegate协议
    • 1.基本概念
    • 2.基本属性
  • 总结


一、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];

}

运行结果如下:
UI学习——UITextField控件_第1张图片

如果没有出现虚拟键盘的话可以在左上角的工具栏中找到I/O选项,点击后选择里边的keyboard的第三个选项
UI学习——UITextField控件_第2张图片

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

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

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

二、UITextFieldDelegate协议

1.基本概念

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

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;

运行结果如下:
UI学习——UITextField控件_第4张图片
当我们点击文本输入框时控制台会输出开始编辑,当我们点击空白部分时控制台会输出结束编辑。

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

总结

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

你可能感兴趣的:(ui,学习,ios,objective-c,开发语言)