博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
UI控件之UITextField
阅读量:4971 次
发布时间:2019-06-12

本文共 2343 字,大约阅读时间需要 7 分钟。

一、作用

1.UILabel用于显示文本信息,而UITextField和UITextView用于接收用户输入

2.UITextField只能输入一行,而UITextView能输入多行

 

二、属性和方法

1.第一响应者(firstResponder)

1️⃣概念:当用户点击一个UITextField、UITextView表明需要输入数据,点击的这个控件就会成为第一响应者,系统就会自动弹出一个键盘

2️⃣用法:

becomeFirstResponder成为第一响应者:弹出键盘

 在ViewDidAppear中使用可以让页面刚出现就弹出键盘

- (void)viewDidAppear:(BOOL)animated{    [super viewDidAppear:animated];    //弹出键盘    [self.pwdTextFiled becomeFirstResponder];}

resignFirstResponder 取消第一响应者:隐藏键盘

//隐藏键盘[self.nameTextField resignFirstResponder];

 

2.keyboardType 更改键盘类型

 具体的值在接口文档里面找

//设置键盘的类型  _nameTextFiled.keyboardType = UIKeyboardTypeDefault;

 

3.text 显示的内容

_nameTextField.text = @"123";

 

4.placeholder 默认提示内容,开始输入的时候就自动消失

_nameTextField.placeholder = @"name";

 

5.background设置背景图片,当borderStyle为roundRect的时候无效

_nameTextField.background = [UIImage imageNamed:@"1"];

 

6.borderStyle 外框的风格

//设置边框类型_nameTextField.borderStyle = UITextBorderStyleLine;     //设置边框颜色 通过layer层控制 _nameTextField.layer.borderColor = [UIColor greenColor].CGColor; _nameTextField.layer.borderWidth = 1;

 

7.监听事件/行为 delegate 协议:<UITextFieldDeledate>

注意:要使用方法必须加入 _nameTextField.delegate = self;还要服从协议

1️⃣配置是否可以输入

//配置是否可以输入,yes可以,可以成为第一响应者,no不行//当textField becomeFirstresponser之前会调用- (BOOL)textFieldShouldBeginEditing:(UITextField *)textField{    return  YES;}

2️⃣开始编辑了,点击输入框,即将开始输入内容

//开始编辑了,点击输入框,即将开始输入内容- (void)textFieldDidBeginEditing:(UITextField *)textField{    }

3️⃣配置是否可以取消第一响应者,是否可以停止输入内容

//当textField resignFirstresponser之前会调用,yes可以隐藏键盘,no不能隐藏,继续输入- (BOOL)textFieldShouldEndEditing:(UITextField *)textField{    return  YES;}

4️⃣停止编辑

//停止编辑了- (void)textFieldDidEndEditing:(UITextField *)textField{    }

5️⃣键盘上的return按钮被点击了(常用

//键盘上的return被点击了 (常用)- (BOOL)textFieldShouldReturn:(UITextField *)textField{    [self.nameTextField resignFirstResponder];    return YES;}

6️⃣实时监听textField上文本内容的改变(在解锁密码时使用)(重要

//实时监听textField上文本内容的改变//range//string 新输入的字符 //即将用新输入的字符来拼接字符串,注意还没有拼接 - (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string;{

    //新的内容 = 用string去替换 text 上range范围的内容

    NSString *newStr = textField.text stringByReplacingCharactersInRange:range withString:string;

NSLog(@"%lu %lu %@", range.location, range.length, string);    return YES;}

注:先在终端打印string,然后string在textField上显示

输入12345

删除

 

刚开始位置为空,所以length为0

 

转载于:https://www.cnblogs.com/jianze/p/9438499.html

你可能感兴趣的文章
UINavigationController的视图层理关系
查看>>
html阴影效果怎么做,css 内阴影怎么做
查看>>
宏观经济
查看>>
综合练习:词频统计
查看>>
BZOJ1026: [SCOI2009]windy数
查看>>
样板操作数
查看>>
64位UBUNTU下安装adobe reader后无法启动
查看>>
组件:slot插槽
查看>>
Nginx配置文件nginx.conf中文详解(转)
查看>>
POJ 1308 Is It A Tree?(并查集)
查看>>
N进制到M进制的转换问题
查看>>
利用sed把一行的文本文件改成每句一行
查看>>
Android应用开发:核心技术解析与最佳实践pdf
查看>>
python——爬虫
查看>>
孤荷凌寒自学python第五十八天成功使用python来连接上远端MongoDb数据库
查看>>
求一个字符串中最长回文子串的长度(承接上一个题目)
查看>>
简单权限管理系统原理浅析
查看>>
springIOC第一个课堂案例的实现
查看>>
求输入成绩的平均分
查看>>
php PDO (转载)
查看>>