一、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 = @"";
时,就会在点击空白部分清空文本输入框的内容。文章来源:https://www.toymoban.com/news/detail-755037.html
总结
以上就是本篇文章的所有内容,如果对你有帮助的话请点赞支持一下~文章来源地址https://www.toymoban.com/news/detail-755037.html
到了这里,关于UI学习——UITextField控件的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!